js事件流:捕获阶段和冒泡阶段

简介: js事件流:捕获阶段和冒泡阶段

事件流:

事件流包含三个阶段:

事件捕捉阶段:事件开始由顶层对象触发,然后逐级向下传播,直到目标元素;

处于目标阶段:处在绑定事件的元素上;

事件冒泡阶段:事件由具体的元素先接收,然后逐级向上传播,直到不具体的元素;

铺货阶段.png

通过代码示例说明:

<style>
  #a {
    width: 300px;
    height: 300px;
    background-color: #eeeeee;
  }
  #b {
    width: 200px;
    height: 200px;
    background-color: #666666;
  }
  #c {
    width: 100px;
    height: 100px;
    background-color: green;
  }
</style>
<div id="a">
  最外层的元素
  <div id="b">
    中间的元素
    <div id="c">
      最里面的元素
    </div>
  </div>
</div>
<script>
  const list = ["a", "b", "c"];
  for (let elementId of list) {
    document.getElementById(elementId).addEventListener(
      "click",
      function () {
        console.log("捕获阶段: ", this.firstChild.textContent.trim());
      },
      true
    );
    document.getElementById(elementId).addEventListener(
      "click",
      function () {
        console.log("冒泡阶段", this.firstChild.textContent.trim());
      },
      false
    );
  }
</script>

点击最里边的元素触发结果如下:

点击最里边的元素触发结果如下:.png

参考

  1. JavaScript事件委托与事件冒泡
  2. HTML DOM 元素对象
相关文章
|
8月前
|
JavaScript
如何写事件冒泡和事件捕捉?
如何写事件冒泡和事件捕捉?
|
2月前
|
容器
如何同时在捕获阶段和冒泡阶段添加事件监听器?
【10月更文挑战第29天】通过以上两种方法,可以根据具体的需求和场景,灵活地同时在捕获阶段和冒泡阶段添加事件监听器,以实现更复杂的事件处理和交互逻辑。
|
3月前
|
JavaScript 前端开发
|
3月前
|
JavaScript 前端开发
事件冒泡和事件捕获的原理和区别
【10月更文挑战第15天】事件冒泡和事件捕获的原理和区别
|
6月前
|
JavaScript
js 事件流、事件冒泡、事件捕获、阻止事件的传播
js 事件流、事件冒泡、事件捕获、阻止事件的传播
89 1
|
8月前
|
传感器 人工智能 算法
掌握C++中的状态-事件回调矩阵:打造强大的有限状态机
掌握C++中的状态-事件回调矩阵:打造强大的有限状态机
177 0
|
8月前
|
JavaScript 前端开发
js事件循环机制理解
js事件循环机制理解
41 1
|
8月前
|
JavaScript
JS事件,你真的懂吗(捕获,冒泡)?
JS事件,你真的懂吗(捕获,冒泡)?
71 0
|
JavaScript 前端开发
【高频触发事件优化】封装节流和防抖
【高频触发事件优化】封装节流和防抖
182 0
|
JavaScript 前端开发
js事件流:捕获阶段和冒泡阶段
js事件流:捕获阶段和冒泡阶段
99 0
js事件流:捕获阶段和冒泡阶段

热门文章

最新文章