2011-12-19 51 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");     
       } 
      } 
     }); 

如果加载的图像数据:图像,什么也不做,否则加我的班。