事件委托

在项目中,通过采用委托事件处理图片列表的删除操作,不仅提高了代码质量,还有效避免了潜在的BUG。本文详细介绍了如何使用jQuery和原生JS实现这一优化,并附带了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做项目时遇到的问题:

对图片列表中的图片单击删除,一开始是在每张图片上绑定的点击删除事件,后经大佬指点改为使用委托事件。

虽然效果相同,但代码质量不同,而且能避免不必要的BUG。

上代码:

Jquery:

<div class="col-xs-7 demo demo-noninputable cjy-InfoEntry-pic" id="cjy-InfoEntry-pic">
                          <div class="cjy-InfoEntry-imgDiv"><img src='' alt=''/><i class="iconfont icon-cha cjy-InfoEntry-cha" ></i></div>
                          <div class="cjy-InfoEntry-imgDiv"><img src='' alt=''/><i class="iconfont icon-cha cjy-InfoEntry-cha" ></i></div>
                          <div class="cjy-InfoEntry-imgDiv"><img src='' alt=''/><i class="iconfont icon-cha cjy-InfoEntry-cha" ></i></div>
                          <div class="cjy-InfoEntry-imgDiv"><img src='' alt=''/><i class="iconfont icon-cha cjy-InfoEntry-cha" ></i></div>
                        </div>
$('#cjy-InfoEntry-pic').on("click", '.cjy-InfoEntry-cha', function (e) {
        var $i = $(e.target);
        var $div = $i.closest('.cjy-InfoEntry-imgDiv');
        var index = $div.index();
        console.log('点击了第'+index+'张图片的删除按钮');
    });

JS:

var parentList = document.getElementById("cjy-InfoEntry");
parentList.addEventListener("click",function(){
  var target = event.target;
  if(target.nodeName.toLowerCase() === "i"){
    alert(target.firstChild.nodeValue);
  }
},false);

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值