关于事件冒泡和事件捕获

最近突然想整理一下这方面的东西,因为在开发一些组件的时候遇到过事件冒泡和捕获带来的问题,感觉平时用的不多,还是记录一下以后还能翻一下。

先聊聊起源为什么会有冒泡流和捕获流,是一开始ie的开发团队和Netscape的开发团队他们对于有一点是共同的就是点击一块区域不仅仅是点击这个区域,他的容器区域也被点击了,但是在具体实现上出现完全相反的做法。ie是事件冒泡,简单点说就是事件沿着DOM树向上传递直到document结束(现在不同浏览器不太一样),Netscape是相反的事件捕获流,就是从根元素向下传递。

现在主流的浏览器都是支持事件冒泡的,而且默认的也是事件冒泡,那什么情况下是事件冒泡什么情况下事件捕获?

一般来说DOM 0级事件处理程序是默认事件冒泡的,类似document.getelementById("_div").οnclick=function(){} 以及在html中直接定义事件处理程序;而使用 DOM 2级事件处理程序  即通过addEventListener绑定事件而标志位为false是冒泡的,true为捕获事件流,我这是在chrome上测试的,ie有点区别;

所以平时写东西的时候,要先考虑全面了,是否会遇到这些问题,定义事件处理程序的时候即使阻止冒泡,或捕获,避免莫名其妙的问题出现,你可能一时半会还不明白怎么了。

能全局考虑,提前处理也是一种大局观,一种能力,只有真的懂了,你才会去考虑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值