所以我有一個頁面,動態加載圖像在用戶請求,基本上隨機圖像會彈出時,他們點擊一個按鈕。我想找到一種方法來隱藏圖像,直到它完成加載,然後再次顯示。我試着用jQuery的$(window).load()函數來做這件事,它對第一個圖像完美地工作,但是當我加載下一個圖像時事件不會再次觸發。有沒有另外一種方法來做到這一點,或重置load()事件?謝謝。jQuery等待動態圖像加載
注意:有問題的圖片是相當大的gif動畫,但它們非常,有些只需要一些時間加載,有些可能需要20秒。
所以我有一個頁面,動態加載圖像在用戶請求,基本上隨機圖像會彈出時,他們點擊一個按鈕。我想找到一種方法來隱藏圖像,直到它完成加載,然後再次顯示。我試着用jQuery的$(window).load()函數來做這件事,它對第一個圖像完美地工作,但是當我加載下一個圖像時事件不會再次觸發。有沒有另外一種方法來做到這一點,或重置load()事件?謝謝。jQuery等待動態圖像加載
注意:有問題的圖片是相當大的gif動畫,但它們非常,有些只需要一些時間加載,有些可能需要20秒。
隱藏它使用CSS和傾聽每個圖像的加載事件:
<img style="display: none" class="loadedImage" src="..." />
$(function(){
$(".loadedImage").live("load", function(){
$(this).show();
});
});
這是我從'.live()'文檔的理解,'.live()'不適用於加載事件。它只適用於泡泡文檔的某些類型的事件。請參閱此處的「注意事項」部分:http://api.jquery.com/live/。 – jfriend00
謝謝。我不知道。我原本想編寫簡單的「.load()」,但由於我不太確定_dynamically loaded images_意味着什麼(不管標記是否已經存在,只有src正在改變或者是什麼),我插入了'.live ()' –
其所謂的延遲加載,並有它的特殊JQuery plugin。
我有一個jQuery plugin called waitForImages這將有助於這一點。
$('#newly-loaded-element').hide().waitForImages(function() {
$(this).show();
});
這是可能的,但你需要告訴我們你正在使用的代碼,所以我們可以建議。 – jfriend00