委托事件和jquery中的delegate方法

本文深入探讨了如何利用事件冒泡和委托技术,优化事件处理性能,特别介绍了jQuery中的delegate方法。通过实例展示了如何仅在父元素上绑定事件,当子元素触发事件时执行特定操作,同时确保动态添加的元素也能被正确处理,有效提高了网站的响应速度和用户体验。

利用事件冒泡的特性,给父元素绑定事件,然后判断事件对象,来给父元素的每个子元素添加事件,而不是直接在所有的子元素上绑定事件:

<ul>

  <li></li>

  <li></li>

  <li></li>

</ul>

给每个li绑定事件:

li.addEventListener('click',function(){console.log(this)});

通过委托来给li绑定事件:

ul.addEventListener('click',function(e){
   if(e.toElement.tagName=='li'){
       console.log(this);
       return false
   }
})

后者只绑定了一次事件,性能上要优于前者.

 

jquery中提供了更强大的相关方法:delegate

    var ul= $('ul');
    ul.delegate('li','click',function(e){
        console.log(e);
        console.log(this);
    })

这样添加的事件,即使是动态添加的li,也可以触发事件

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值