DOM 事件分发、捕获、冒泡

target.addEventListener(type, listener[, useCapture]);
useCapture 可选
如果值为 true,表示用户希望发起事件捕获。在发起捕获之后,只要 DOM 子树下发生了该事件类型,都会先被派发到该注册监听器,然后再被派发到 DOM 子树中的注册监听器中。并且向上冒泡的事件不会触发那些发起捕获的事件监听器。进一步的解释可以查看 DOM Level 3 Events 文档。

只有在多个监听器下这个参数才会有效。

我们点击一个 span,我可能就想点击这个 span,事实上他是先点击document,然后点击事件传递到span的,而且并不会在span停下,span有子元素就会继续往下,最后会依次回传至document

DOM事件流(事件流中移除的DOM还是会捕获冒泡

eventPhase


调用事件处理程序的阶段:1 捕获阶段;2 处于目标阶段(目标元素监听器不区分捕获冒泡);3 冒泡阶段

这个属性的变化需要在断点中查看,不然你看到的总是 0


事件处理函数是依次(懒)放入微任务执行的