事件冒泡和捕获

当一个事件发生在具有父元素的元素上时,现代浏览器运行两个不同的阶段: 捕获阶段冒泡阶段

在捕获阶段:

浏览器检查元素的最外层祖先<html>,是否在捕获阶段中注册了onclick事件,如果是,则运行它。
然后,它检查<html>中点击元素的下一个祖先元素,并执行相同的操作,然后是点击元素再下一个祖先元素,依此类推,直到到达实际点击的元素。

冒泡阶段:

浏览器检查实际点击的元素是否在冒泡阶段中注册了onclick事件,如果是,则运行它
然后检查下一个直接的祖先元素,并做同样的事情,然后是下一个,等等,直到它到达<html>元素。


在现代浏览器中,默认情况下,所有事件处理程序都在冒泡阶段进行注册。

注解: 如上所述,默认情况下,所有事件处理程序都是在冒泡阶段注册的,这在大多数情况下更有意义。如果真的想在捕获阶段注册一个事件,那么可以通过使用addEventListener()注册您的处理程序,并将可选的第三个属性设置为true。

文档更新时间: 2023-01-06 10:38   作者:孙老师