2011-11-15 109 views
1
<div class="actions"> 
     <h3>Actions</h3> 
     <ul> 
      <li><a href="/configurations">Configurations</a></li> 
     </ul>    
    </div> 


<script type="text/javascript" src="/jquery.min.js"></script> 
<script type="text/javascript"> 
     $('ul a').click(function(){ 
        alert(""); 
      }); 
</script> 

在上面的代碼中是document.ready必需的。我的意思是,有沒有什麼情況下,當js將被執行之前,html把js放在頁面的末尾

回答

2

.readyDOMContentLoaded(或onreadystatechange或各種其他瀏覽器的變通方法)的快捷方式。該事件在DOM構建完成時觸發 - 換言之,當整個HTML被下載時。

所以,只要你的腳本標籤是</body>前的最後一件事(他們沒有內部的任何div S或其他元素)的最終結果是一樣的,你不需要$(document).ready。甚至建議這樣做,因爲將腳本放入<head>會減慢內容的加載速度。

雖然我建議您採用這種模式,以避免問題的$全球:

<script> 
(function($){ 
    $('ul a').click(function(){ 
     alert("") 
    }) 
})(jQuery) 
</script> 

這些其他的問題是有趣的記載:

+0

'jQuery(function($){})'是一個更好的方法。在這裏準備好使用文檔並不會花費任何代價,如果您稍後移動代碼,會造成混淆。 – Eric

+0

「更好」這裏是主觀的 - 對.ready的檢查是不必要的。大多數人應該很好地理解像這樣使用閉包。 –

-1

在你的情況下,似乎沒有問題。 但是,當您使用圖片(<img />)時,即使圖片尚未顯示,文檔仍有可能執行您的功能(它會觸發「就緒」事件)。

+0

document.ready在加載DOM時觸發,它不會等待加載圖像。 – Headshota

+0

你正在考慮'load'事件。在圖像加載之前,DOMReady會觸發。 –