2011-12-19 44 views
14

最近我看到,你可以使用任何我應該使用window.load或jQuery的的document.ready

$('document').ready(function() { 
//Do Code 
}); 

$('window').load(function() { 
//Do Code 
}); 

jQuery的。

但是,他們對我來說看起來是一樣的!但顯然不是。

所以我的問題是:我應該使用哪一個基於動畫和異步的網站排序?而且兩者中的哪一個通常更好用?

謝謝。

+0

你想用它做什麼?通常答案是「不」。你正在做一些需要'load'而不是'ready'的東西嗎? – 2011-12-19 14:17:34

+0

[window.onload vs document.ready]可能的重複(http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready) – pimvdb 2011-12-19 14:19:51

+0

@pimvdb這是jquery,所以不是dup。 – 2011-12-19 14:21:12

回答

31

$('document').ready運行的代碼時,DOM已準備就緒,而不是在網頁本身已經加載,即該網站還沒有被畫和圖像等內容還沒有被加載。

$(window).load運行代碼,當頁面已被繪製和所有內容已被加載。當您需要獲取圖像的大小時,這會很有幫助。如果圖像沒有樣式或寬度/高度,則除非使用$(window).load,否則無法獲得其大小。

7

那麼首先你可能要考慮使用「現成」的事件,你可以處理程序是這樣的:或者,更簡潔地道

$().ready(function() { 
    ... 
}); 

$(function() { 
    ... 
}); 

的「加載「處理程序確實與實際事件有關,並且可以處理幾種不同類型的元素:例如,<img>和。文檔或窗口級別的「加載」事件發生在加載所有頁面資源時。 (在某些瀏覽器中合成)「就緒」事件會發生在頁面DOM準備就緒但可能在諸如<img>內容之類的情況下。

另一種選擇是簡單地將您的<script>標籤放在<body>的最後或甚至在<body>之後。這樣腳本就可以使用整個DOM,但是您不必擔心任何類型的事件處理。

相關問題