为了账号安全,请及时绑定邮箱和手机立即绑定

自定义方法事件委托怎么写

自定义方法事件委托怎么写

30秒到达战场 2019-02-27 15:32:25
比如$(".img.lazy").lazyload({effect : "fadeIn"});如果图片是循环出来的话这个懒加载就不好用 这个方法写成事件委托形式怎么写事件委托 sorry就是说正常的click事件$(".box").click(callback);对循环出来的节点是没有效果的应该写成$(".boxparent").on("click",".box",callback);那么我上面那个懒加载方法写成这种形式可以么
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

lazyload是一个插件功能,不能一个事件~,所以不存在委托什么的


你可以在批量添加完一批图片时,统一的添加上一个自定义的标识类

例如.watched,避免已经被lazyload标识过的被再次lazyload.

可能这个特性在lazyload中已经存在,我相应会有的

然后通过


$(".img.lazy:not(.watched)").lazyload({

    effect : "fadeIn"

});

lazyLoad基本上使用如下方法实现


function lazyLoad(imgDOM,resultCallback){

    var imgSrc,tempImg;

    if($(imgDOM).hasClass("watched")||$(imgDOM).attr("data-loaded")==="done"){

       return;

    }

    imgSrc=$(imgDOM).attr("data-origin-src");

    tempImg=new Image();

    tempImg.onload=function(){

        $(imgDOM).attr("src",imgSrc);

        $(imgDOM).attr("data-loaded","done");

        doneFlag=true;

        resultCallback&&resultCallback.apply(imgDOM,[]);

        tempImg=null;

    }

    tempImg.src=imgSrc;

}


查看完整回答
反对 回复 2019-03-07
  • 2 回答
  • 0 关注
  • 451 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信