当前位置:首页 > 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实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…