当一个事件发生在具有父元素的元素上时,现代浏览器运行两个不同的阶段:捕获和冒泡
捕获阶段:浏览器检查元素的最外层祖先html,是否在捕获阶段注册lonclick事件,如果有,运行
检查html中点击元素的下一个祖先元素,执行相同操作;
依次执行,直到到达实际点击的元素.
冒泡阶段:浏览器检查实际点击的元素是否在冒泡阶段注册了onclick事件,如果有,运行;
检查下一个直接的祖先元素,执行相同操作;
依次执行,直到到达html元素.
在现代浏览器中,默认所有事件处理程序性都在冒泡阶段进行注册;
注意:如上所述,默认情况下,所有事件处理程序都是在冒泡阶段注册的,这在大多数情况下更有意义。如果真的想在捕获阶段注册一个事件,那么可以通过使用addEventListener()注册您的处理程序,并将可选的第三个属性设置为true。