前端之家收集整理的这篇文章主要介绍了
javascript – 事件冒泡/捕获 – 它从哪里开始/结束?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道一个事件有两种模式 – 冒泡和捕捉.
当事件设置为冒泡时,Javascript会检查“文档”吗?
当事件设置为捕获时,Javascript是否始终从“文档”开始?
Javascript如何知道停止/启动的位置?
更新:
假设我的body标签中有以下代码.
<div id='outer'>
<div id='inner'></div>
</div>
当我将一个事件设置为#inner来冒泡时,Javascript会检查文档还是停在#outer?
事件冒泡
JavaScript会一直检查文档.如果在文档上添加侦听器并在内部添加侦听器,则两个侦听器都会触发.
事件捕获
JavaScript从文档开始,一直到内部.如果在文档上添加侦听器并在内部添加侦听器,则两个侦听器都会触发.
我的发现
事实证明,浏览器会进行某种智能处理
a)不必遍历整个父级别
和
b)不必遍历所有事件.
证明
a)单击内部div时,浏览器没有时间触发两个单击事件:
Fiddle
b)当存在许多其他事件附加到不在父层次结构中的其他DOM元素时,浏览器没有时间触发单击内部div时的两个点击事件:
Fiddle
原文链接:https://www.f2er.com/js/240672.html