微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/js/240672.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐