2025-08-01 JavaScript事件冒泡机制解析:原理、应用与阻止方法 JavaScript事件冒泡机制解析:原理、应用与阻止方法 一、什么是事件冒泡?当我们点击一个嵌套的HTML元素时,事件会像气泡从水底升到水面一样,从最深层的目标元素向外层父元素逐级传播,这个现象称为事件冒泡(Event Bubbling)。这是DOM事件流的三个阶段(捕获、目标、冒泡)中的最后一个阶段。html点击我 document.getElementById('grandparent').addEventListener('click', () => { console.log('祖父元素被触发'); }); document.getElementById('parent').addEventListener('click', () => { console.log('父元素被触发'); }); document.getElementById('child').addEventListener('click', () => { console.log('按钮被点击'); }); 点击按钮时,控制台会依次输出: 1. "按钮被点击" 2. "父元素被触发" 3. "祖父元素被触发"二、为什么要阻止事件冒泡?在以下场景... 2025年08月01日 14 阅读 0 评论
2025-06-25 JS阻止事件冒泡的2种经典方法详解 JS阻止事件冒泡的2种经典方法详解 一、什么是事件冒泡?当我们在网页上点击一个按钮时,这个点击事件会像泡泡一样从最具体的元素(按钮)向上"浮"到最不具体的元素(通常是document对象),这个现象就叫事件冒泡。比如:```html点击我```点击按钮时,事件的触发顺序是:button → div → body → html → document二、为什么要阻止事件冒泡?上周开发弹窗组件时我就遇到过这种情况:点击弹窗内容区域时正常,但点击关闭按钮时,由于事件冒泡导致弹窗关闭后立即又被父元素的点击事件重新打开。这时候就需要手动阻断事件向上传播。三、方法一:stopPropagation()(推荐方案)这是W3C标准推荐的方式,我在实际项目中90%的情况都会使用这个方法。```javascript document.getElementById('child').addEventListener('click', function(event) { console.log('按钮被点击了,但事件到此为止'); event.stopPropagation(); // 核心代码// 其他业务逻辑... }, fal... 2025年06月25日 29 阅读 0 评论