我有一個jQuery ajax函數,將一些內容加載到div中,其中一些內容是圖像。我想說,直到那些剛剛加載到我的ajax中的圖像完成加載,然後運行一個函數(如顯示內容)。這樣,我就不會將內容加載到div中並且圖像開始加載。我希望他們被加載,然後把內容,或show()
的內容在div中。知道何時完成圖像加載AJAX響應
我已經看到很多解決方案,例如使用,但它似乎不適用於使用ajax加載的內容。
我有一個jQuery ajax函數,將一些內容加載到div中,其中一些內容是圖像。我想說,直到那些剛剛加載到我的ajax中的圖像完成加載,然後運行一個函數(如顯示內容)。這樣,我就不會將內容加載到div中並且圖像開始加載。我希望他們被加載,然後把內容,或show()
的內容在div中。知道何時完成圖像加載AJAX響應
我已經看到很多解決方案,例如使用,但它似乎不適用於使用ajax加載的內容。
您需要在AJAX回調中添加裝載處理程序,以使其適用於通過AJAX調用加載的圖像。您可能還希望設置一個計時器,以便在應用裝載處理程序之前加載圖像以顯示內容。
$.ajax({
...
success: function(data) {
var imageCount = $(data).filter('img').length;
var imagesLoaded = 0;
$(data).hide()
.appendTo('#someDiv')
.filter('img')
.load(function() {
++imagesLoaded;
if (imagesLoaded >= imageCount) {
$('#someDiv').children().show();
}
});
setTimeout(function() { $('#someDiv').children().show() }, 5000);
}
});
$("img").load()
將不起作用,因爲圖像是動態加載的;該命令將僅適用於當時頁面上的圖像。
使用$("img").live("load")
來跟蹤圖像何時加載。
奇。我想說live不支持加載 - 它可能不會 - 但加載事件不會出現在受支持或不受支持的列表中。你有沒有測試過,看它是否有效? – tvanfosson 2009-11-01 20:42:18
我想: $( '#productFull IMG')生活( '負荷',函數(){ 警報( '形象裝!'); \t \t }); 但是,這似乎並沒有工作。這是否需要在ajax函數的範圍內? – 2009-11-01 20:44:50
我沒有測試過它,如果它不在支持的列表中,它很可能不被支持,因爲jQuery很難實現。 – mahemoff 2009-11-01 20:47:45
這是最新版本的代碼tvanfosson提供的。
你必須確保imageCount
變量計算節點列表,而不是一個字符串在原代碼的問題,從我可以推斷出:
+1 - 我非常喜歡這種方法。 – karim79 2009-11-01 21:00:20
我很難得到這個工作。獲取一些js錯誤。有沒有人有這樣的例子? – 2009-11-01 21:20:46
這個腳本在我調整它之後爲我工作...看我的帖子在 – bgreater 2010-06-08 16:49:31