如何写事件冒泡和事件捕捉?

简介: 如何写事件冒泡和事件捕捉?

以下是一个简单的例子,演示了事件冒泡和事件捕获的过程

<!DOCTYPE html>
<html>
<head>
  <title>事件冒泡和事件捕获</title>
</head>
<body>
  <div id="outer">
    <p id="inner">点击我</p>
  </div>
  <script>
    var outer = document.getElementById("outer");
    var inner = document.getElementById("inner");
    outer.addEventListener("click", function(){
      console.log("outer捕获");
    }, true);
    inner.addEventListener("click", function(){
      console.log("inner目标");
    });
    outer.addEventListener("click", function(){
      console.log("outer冒泡");
    });
  </script>
</body>
</html>

JS中的事件流分为三个阶段:捕获阶段、目标阶段和冒泡阶段。事件捕获是从外向内依次触发,而事件冒泡则是从内向外依次触发。在使用addEventListener方法添加事件监听时,第三个参数用来控制是冒泡事件还是捕获事件(false为冒泡,true为捕获,默认值为false)。

举个例子,当一个按钮被点击时,事件会首先在最外层的元素上进行捕获,然后逐级向下,直到到达目标元素,接着在目标元素上进行处理,最后再从目标元素开始向上冒泡,直到到达最外层的元素。

当我们点击后会出现相应的内容

outer捕获
inner目标
outer冒泡

 

相关文章
|
7月前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
52 2
|
2月前
|
JavaScript 前端开发
事件冒泡和事件捕获的原理和区别
【10月更文挑战第15天】事件冒泡和事件捕获的原理和区别
|
2月前
|
人工智能 大数据
碰撞事件探究
【10月更文挑战第21天】碰撞事件是一个充满奥秘和挑战的研究领域。深入理解碰撞的原理和规律,不仅有助于我们解决实际问题,也能让我们更好地认识自然界的运行机制。随着科学技术的不断进步,我们对碰撞事件的研究将不断深入,为人类的发展和进步提供更多的知识和启示。还可以结合具体的实验案例、实际应用和科学发现,进一步拓展和丰富对碰撞事件的探讨,使其更加全面和深入。
93 42
|
5月前
|
JavaScript
js 事件流、事件冒泡、事件捕获、阻止事件的传播
js 事件流、事件冒泡、事件捕获、阻止事件的传播
82 1
|
7月前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素依次触发事件,而事件捕获则从最外层元素向内层元素传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。例如: ```javascript element.addEventListener(&#39;click&#39;, console.log, false); // 冒泡 element.addEventListener(&#39;click&#39;, console.log, true); // 捕获 ```
49 0
|
7月前
|
JavaScript
js中的事件冒泡和事件捕捉
js中的事件冒泡和事件捕捉
46 0
|
7月前
|
JavaScript
JS事件,你真的懂吗(捕获,冒泡)?
JS事件,你真的懂吗(捕获,冒泡)?
67 0
|
JavaScript
请解释什么是事件代理
请解释什么是事件代理
|
JavaScript API
StencilJs 学习之事件
其实并没有所谓的 stencil Event,相反 stencil 鼓励使用 DOM event。然而,Stencil 提供了一个 API 来指定组件可以触发的事件,以及组件监听的事件。 这是通过 Event()和 Listen()装饰器实现的。
84 0
|
JavaScript 容器
弄懂事件委托
弄懂事件委托
71 0