事件冒泡是一种事件传播机制,它描述了当一个事件发生在一个元素上时,如何触发该元素及其祖先元素的相关事件处理程序,事件冒泡允许我们在不直接为目标元素添加事件处理程序的情况下,捕获和处理事件。
(图片来源网络,侵删)
事件冒泡的过程可以分为以下几个阶段:
1、事件捕获阶段:事件从根节点(document)开始,逐级向下传播,直到到达目标元素,在这个过程中,事件处理程序会按照特定的顺序被调用。
2、目标处理阶段:事件到达目标元素后,触发目标元素的事件处理程序。
3、事件冒泡阶段:事件从目标元素开始,逐级向上传播,回到根节点,在这个过程中,事件处理程序也会按照特定的顺序被调用。
下面是一个使用表格来说明事件冒泡过程的示例:
阶段 | 描述 | 示例代码 |
事件捕获阶段 | 事件从根节点开始,逐级向下传播 | document.addEventListener(‘click’, function(event) { console.log(‘document click’); }, true); |
目标处理阶段 | 事件到达目标元素后,触发目标元素的事件处理程序 | button.addEventListener(‘click’, function(event) { console.log(‘button click’); }, false); |
事件冒泡阶段 | 事件从目标元素开始,逐级向上传播 | document.addEventListener(‘click’, function(event) { console.log(‘document click’); }, false); |
注意:在JavaScript中,可以通过addEventListener方法为元素添加事件处理程序,第三个参数表示是否在捕获阶段执行事件处理程序,如果设置为true,则表示在捕获阶段执行;如果设置为false或省略,则表示在冒泡阶段执行。