2011-12-19 84 views
6

我從這個網站下載jQuery的lazyload插件http://www.appelsiini.net/projects/lazyloadjquery lazyload插件和回調函數

從他們的文檔我還沒有發現可以使用任何回調或不使用lazyload插件。

想我的HTML看起來像

<div id="gallery" class="busy"><img src="blah.jpg" /></div> 
<div id="gallery" class="busy"><img src="blah2.jpg" /></div> 
<div id="gallery" class="busy"><img src="blah3.jpg" /></div> 

我的劇本就像

$("#gallery img").lazyload(); 

類忙着將只在div的中心設置一個繁忙的形象。所以我需要一個回調,並從回調我需要檢測圖像下載完成或如果完成,然後我只是從相應的圖像標記的父div刪除類。

所以請告訴我用lazyload實現回調的方式,還需要示例代碼,我可以通過它從相應的圖像標記的父級div中移除該類。

謝謝

+1

你的html標記是錯誤的,ID必須是唯一的不同divs – 2011-12-19 06:29:54

+0

我問了不同的問題,有沒有任何回調函數,每次下載完成時,每個圖像觸發? – 2011-12-19 07:42:27

回答

12

我有同樣的問題。做了一些搜索,來到這裏,找到了答案。這是我有,並適用於我:

$(this).lazyload({ 
    effect : 'fadeIn', 
    load : function() 
    { 
     console.log($(this)); // Callback here 
    } 
}); 

希望這有助於!

+1

太棒了!工作順利。 – dnns 2014-11-23 20:33:39

+0

觸發器加載事件更多信息http://www.appelsiini.net/projects/lazyload – zloctb 2015-02-13 13:55:52

0

裏克德格拉夫的答案几乎爲我做了。

這個問題對我來說是:負載被調用的佔位符圖像以及。在我的情況下是一個問題。我想只爲最終加載的圖像添加一個類。我說這個,使其爲我工作:

jQuery("img.lazy").lazyload({ 
      effect : 'fadeIn', 
      load : function() 
      { 
       if (jQuery(this).attr("src") != "data:image/gif;base64,R0lGODlhZABlAIAAAPn5+QAAACH5BAAAAAAALAAAAABkAGUAAAJ0hI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wsOi8fksvmMTqvX7Lb7DY/L5/S6/Y7P6/f8vv8PGCg4SFhoeIiYqLjI2Oj4CBnZVQAAOw==") { 
        jQuery(this).addClass("visible-image");     
       } 
      } 
     }); 

如果加載的圖像數據:圖像,什麼也不做,否則加我的班。