当前位置:首页 > JavaScript

js实现点击冒泡

2026-02-02 15:47:19JavaScript

事件冒泡机制

事件冒泡是DOM事件传播的机制之一,当元素触发事件时,事件会从触发元素开始,逐级向上层父元素传播,直到document对象。例如,点击子元素时,父元素上的同类事件也会被触发。

阻止事件冒泡的方法

在JavaScript中,可通过stopPropagation()方法阻止事件继续向上冒泡:

element.addEventListener('click', function(event) {
  event.stopPropagation(); // 阻止事件冒泡
  // 其他逻辑
});

实际应用示例

假设HTML结构如下:

<div id="parent">
  <button id="child">点击</button>
</div>

允许冒泡的情况(默认行为):

document.getElementById('parent').addEventListener('click', () => {
  console.log('父元素被触发');
});

document.getElementById('child').addEventListener('click', () => {
  console.log('子元素被触发');
});
// 点击按钮会依次输出:子元素被触发 → 父元素被触发

阻止冒泡的情况

document.getElementById('child').addEventListener('click', (event) => {
  event.stopPropagation();
  console.log('子元素被触发,但阻止冒泡');
});
// 点击按钮仅输出:子元素被触发,但阻止冒泡

事件捕获与冒泡的关系

事件传播分为捕获阶段(从上到下)和冒泡阶段(从下到上)。若需要在捕获阶段拦截事件,可设置addEventListener的第三个参数为true

js实现点击冒泡

element.addEventListener('click', handler, true);

注意事项

  • 阻止冒泡可能影响依赖事件冒泡的全局监听逻辑。
  • 某些事件(如focus)默认不冒泡,需使用捕获阶段或替代方案。
  • 结合event.preventDefault()可同时阻止默认行为和冒泡。

标签: js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…