2011-09-09 49 views

回答

3

有一個如何在jQuery doc page for .load()上執行此操作的示例。

HTML:

<img src="book.png" alt="Book" id="book" /> 

的Javascript:

$('#book').load(function() { 
    // Handler for .load() called. 
}); 

而且,還有一堆需要注意的地方需要注意的是jQuery的網頁上列出了。

使用圖像時,如果要確保裝載處理程序被調用,則必須先設置裝載處理程序,然後才能裝載圖像。如果您使用代碼構建圖像,這意味着您必須在設置.src屬性之前設置裝入處理程序。這是因爲,在某些瀏覽器中,如果映像位於內存/磁盤緩存中,則在分配.src時會立即加載,如果隨後設置了​​處理程序,則會太晚(圖像已經加載)以及​​處理程序將永遠不會被調用。

我不知道如何保證一個基於jQuery的.load()總是被調用,因爲你的頁面中的圖像是HTML,因爲你不能分配事件處理程序直到對象存在,但是一旦對象它退出,它可能已經被加載。您可以在實際的HTML中使用onload = xxx的非jQuery設置,儘管這是一種較舊的編碼風格。當然,你總是可以掛鉤window.onload,以知道何時加載了所有頁面圖像(和其他資源)。

+0

請@ jfriend00閱讀部分:使用圖片時加載事件的注意事項 – rkmax

+0

我已閱讀注意事項。我不知道爲什麼他們聽起來很悲觀,除非jQuery的實現是有問題的。我已經在代碼中使用了load事件(非jQuery,基於plain-javascript的),代碼可以在數千個站點上可靠地運行(在運行幻燈片的代碼中,所以代碼知道下一個圖像何時加載並準備好顯示)和IE6以上的各種瀏覽器。我從來沒有遇到過問題。您必須確保事件尚未解除,但有辦法檢測/阻止該事件。 – jfriend00

0

jQuery有一個load方法,而不是onload。而你的代碼應該是:

$ ('img').load(function() { 
    alert('image loaded ' + this.src); 
}) 
相關問題