學習jQuery的第一件事是:如果你想要一個事件運行在你的頁面上,你必須在$(document).ready()裡調用這個事件。所有包括在$(document).ready()裡面的元素或事件都將會在DOM完成加載之後立即加載,並且在頁面內容加載之前。
If you want an event to work on your page, you should call it inside the $(document).ready() function. Everything inside it will load as soon as theDOM is loaded and before the page contents are loaded.
. 代碼如下:
$(document).ready(function() {
// put all your jQuery goodness in here.
});
有很多方法可以確保事件在頁面上正常工作,$(document).ready()比其它方法要更有優勢。首先,你不必在HTML上放置任何“ 行為性的”標記。另外,你可以將JavaScript/jQuery寫入一個獨立的js文件,這樣既容易維護,又保證了js與頁面內容的隔離。如果你在浏覽網頁時更加細心,你就會常常看見這種情況:當你將鼠標懸停在一個連接時,有時狀態欄中會在顯示“javascript:void()”這樣的消息。這就是你把一個事件直接放在<a href>標簽裡所造成的。
在一些使用traditional JavaScript的頁面,你會在<body>標簽中看見“onload”屬性。這會導致一個問題:它限定了在body上只能有一個函數事件。是的,因為它又往內容中添加的“行為性的”標簽。如果你想解決這個問題,請參考Jeremy Keith的書:DOM Scripting,裡面講述了如何在一個單獨的js文件裡創建一個 “addLoadEvent” 函數,它允許多個函數可以在body裡被加載。但是這種方法需要為本來很簡單的問題編寫相當數量的代碼,另外,這種方法是在加載window時觸發這些事件的,這不得不讓我再一次想起 $(document).ready()的好處。
使用 $(document).ready(),你能讓你的事件在window加載之前加載或觸發。所有你寫在這個方法裡面的都准備在最早的時刻加載或觸發。也就是說,一旦DOM在浏覽器中注冊後,$(document).ready()裡的代碼就開始執行。這樣用戶在第一眼看見頁面元素時,特效就可以運行了。