2011-11-09 39 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之後。