什么是事件冒泡?如何阻止事件冒泡? | 您所在的位置:网站首页 › 油水飞天事件什么意思 › 什么是事件冒泡?如何阻止事件冒泡? |
在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。 阻止事件冒泡的方法·w3c方法是:event.stopPropagation(); 事件处理过程中,阻止冒泡事件,但不会阻止默认行为(跳转至超链接) ·IE则是使用event.cancelBubble = true 阻止事件冒泡 ·return false; jq里面事件处理过程中,阻止冒泡事件,也阻止默认行为(不跳转超链接) 封装方法: function bubbles(e){ var ev = e || window.event; if(ev && ev.stopPropagation) { //非IE浏览器 ev.stopPropagation(); } else { //IE浏览器(IE11以下) ev.cancelBubble = true; } console.log("最底层盒子被点击了") }阻止默认行为: w3c的方法是e.preventDefault(),IE则是使用e.returnValue = false; 封装: //假定有链接caibaojian.com var a = document.getElementById("testA"); a.onclick =function(e){ if(e.preventDefault){ e.preventDefault(); }else{ window.event.returnValue == false; } } |
CopyRight 2018-2019 实验室设备网 版权所有 |