javascript里阻止事件冒泡

简介:

如下图所示,灰色块包含红色块,假设我们为灰色和红色块各绑定一个单击弹框事件,当我们点击红色块时,不希望触发灰色块的弹框事件,这就需要阻止冒泡事件了。

 

IE里阻止冒泡事件使用cancelBubble属性,如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。

火狐等非IE浏览器阻止冒泡事件使用stopPropagation()方法。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。

 

我们看代码实例:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件对象--阻止事件冒泡</title>
</head>
<body>
    <div id="gray" style="background:#ddd;width:400px;height:400px;">
        <div id="red" style="background:#FF0000;width:200px;height:200px;"></div>
    </div>

    <script>
        var oGray=document.getElementById("gray");
        var oRed=document.getElementById("red");

        oGray.onclick=function(){
            alert("点击了灰色块!");
        }

        oRed.onclick=function(e){
            alert("点击了红色块!");

            var event=e||window.event;
            //阻止冒泡事件,否则会触法oGray.onclick方法
            if(document.all){
                //IE
                event.cancelBubble=true;//如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true
            }else{
                //FF,Chrome
                event.stopPropagation();//不再派发事件
            }
        }
        
    </script>
</body>
</html>

目录
相关文章
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
124 2
|
12月前
|
JavaScript 前端开发 UED
JS DOM 事件流与事件冒泡
【10月更文挑战第16天】理解 DOM 事件流和事件冒泡是掌握 JavaScript 事件处理的关键。通过合理利用事件冒泡,可以实现更高效、灵活的事件处理机制,提升用户体验和开发效率。在实际开发中,要根据具体情况灵活运用这些概念,以达到最佳的效果。
204 42
|
JavaScript 前端开发
事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。
【6月更文挑战第27天】事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。例如,动态列表可共享一个`click`事件处理器,通过`event.target`识别触发事件的子元素,简化管理和响应动态内容变化。
101 0
|
12月前
|
JavaScript 前端开发 UED
JavaScript中的事件冒泡
JavaScript中的事件冒泡
|
JavaScript 前端开发 UED
JavaScript中的事件冒泡
JavaScript中的事件冒泡
74 1
|
存储 JavaScript 前端开发
js事件冒泡和事件委托
事件冒泡是指事件从最内层元素开始逐级向上传播至祖先元素的过程,默认情况下,点击子元素时会先触发自身的事件处理程序,再依次向上触发父元素的处理程序。事件委托则是在父元素上设置事件处理程序,利用事件冒泡机制处理子元素的事件,以此减少内存消耗和提高性能,特别适用于处理大量动态子元素的情况。其区别在于事件冒泡是事件传播机制的一部分,而事件委托是编程技巧,通过在父元素上绑定事件处理程序来简化子元素的事件处理。
98 0
|
JavaScript
js 事件流、事件冒泡、事件捕获、阻止事件的传播
js 事件流、事件冒泡、事件捕获、阻止事件的传播
211 1
|
JavaScript
Vue.js中使用.self修饰符来处理事件冒泡
Vue.js中使用.self修饰符来处理事件冒泡
|
JavaScript 前端开发
js的事件冒泡
js的事件冒泡
91 1