【发布时间】:2023-03-20 10:22:01
【问题描述】:
我知道一个事件有两种模式——冒泡和捕获。
当一个事件设置为冒泡时,Javascript 是否会检查“文档”?
当一个事件设置为捕获时,Javascript是否总是从“文档”开始?
Javascript 如何知道在哪里停止/开始?
假设我的 body 标签中有以下代码。
<div id='outer'>
<div id='inner'></div>
</div>
当我将事件设置为#inner 以冒泡时,Javascript 是检查文档还是停止在 #outer?
【问题讨论】:
-
来自 quirksmode 的内容丰富的文章:quirksmode.org/js/events_order.html
-
@techfoobar // 我确实读过那篇文章,但不清楚 Javascript 是检查文档还是停止在父元素。
-
如果它停在外层,它怎么知道document.body或类似文件上是否有任何事件监听器?
-
@JohnKurlak // 我猜 Javascript 维护了一个事件列表或类似的东西。
-
阅读 W3Cs DOM Events 了解事件如何工作的规范。
标签: javascript dom-events event-bubbling