2011-11-09 40 views
0

下面的代码在没有$(document).ready(function() {和右括号的jsFiddle上工作正常。 (例如:http://jsfiddle.net/cEDYD/),但是当我将代码放到网页上并准备好文档后,它就停止工作。我错过了什么吗?我已经包括jquery添加document.ready时代码不起作用

<script type="text/javascript"> 
$(document).ready(function() { 
    function showDiv(element, pro2) { 
     if (pro2.children("option:selected").val() == "cpl") element.show(); 
     else element.hide(); 
    } 

    var myElement = $("div#pro2"); 
    var mypro2 = $("select#ptype"); 

    $("select").change(function() { 
     showDiv(myElement, mypro2) 
    }); 
}); 
</script> 
+1

JavaScript控制台中的任何东西? –

+0

适合我。通常尽管你会保持函数声明超出就绪函数的范围。 – jli

+0

@jli - 如果这是他们唯一使用的地方,我更喜欢在文档准备范围内。是的,它使文档看起来更加混乱,但它可以帮助防止与其他代码发生冲突。 – nnnnnn

回答

1

是否有一个原因,你不希望这包裹在文档准备处理程序?

在执行javascript时出现DOM未准备好。

检查javascript控制台。 Google Chrome非常适合JS调试。

+0

我确实希望它包裹在一个,原始示例代码现在有一个文件准备好了,我试图自己添加它。我得到它的工作 – acctman

0

问题最终成为我的css文件中的一个错字。 - 感谢测试人员

0

您的jsfiddle具有一个自动将代码包装在document.ready()中的设置。这就是为什么它在jsFiddle中没有ready()的情况下工作(请参阅左上方的onload)。

document.ready()在常规网页中需要,除非您将JavaScript放在主体HTML之后。