事件委托

  最近刷Zepto视频时,听到里面提到了事件委托,就去查了一下,对事件委托有了些了解,特总结一下。

什么是事件委托

  事件委托是利用事件冒泡,只指定一个事件处理程序来管理某一类型的所有事件。

为什么要用事件委托

  • 在数量少的情况下,我们为同一个标签(比如 li )添加事件时常使用for循环,但是数量多的时候可能会影响浪费内存,甚至对页面性能产生影响。
  • 我们在绑定事件时(比如点击事件),只能绑定在页面已有的元素上,而对于新创建的元素便没有这个事件,如果想让新添加的同样具有,这里就得用事件委托。

事件委托的原理

  上面已经说过,事件委托是利用事件的冒泡原理来实现的。
  那么什么是事件冒泡呢?
  事件冒泡就是事件从最深的节点开始,然后逐步向上传播事件。
  给大家举个我查资料时看到的一个例子,说的很形象:
  页面上有这么一个节点树,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。

适用场合

  • 为DOM中的很多元素绑定相同事件时;
  • 为DOM中尚不存在的元素绑定事件时;

事件委托的好处

  对于新创建的元素直接就可以拥有想给它添上的事件。

附上相关代码大家可以敲敲试试:

$('#box').on("click",'.a',function(){
      alert('a事件');     
 });
$('#box').append('<div class="a">我是新添加的div</div>');
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值