JS事件代理(也称事件委托)是什么,及实现原理

JS事件代理就是通过给父级元素(例如:ul,tr等等)绑定事件,不给子级元素(例如:li,td等等)绑定事件,然后当点击子级元素时,通过事件冒泡机制在其绑定的父元素上触发事件处理函数,主要目的是为了提升性能,因为我不用给每个子级元素绑定事件,只给父级元素绑定一次就好了,在原生js里面就是通过event对象的taget属性实现。

   var ul=document.querySelector("ul");
 ul.onclick=function(e){
      //e这里指event对象
  var target=e.target=e.target||e.srcElement;//target 获取触发事件的目标(li)
  if(target.nodeName.toLowerCase()==' li '){
        //目标(li)节点名转小写字母,不转换的话是大写字母
       alert(target.innerHTML)
    }
}

jq方式实现相对而言简单

$('ul').on('click','li',function(){
    //事件逻辑
})

其中第二个参数指的是触发事件的具体目标,特别是给动态添加的元素添加事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值