教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

什么是事件冒泡?如何阻止事件冒泡?

更新时间:2021年10月15日18时53分 来源:传智教育 浏览次数:

好口碑IT培训

什么是事件冒泡?

在一个对象上触发某类事件(比如单击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;

封装:

//假定有链接<a href="http://caibaojian.com/" id="testA" >caibaojian.com</a>
var a = document.getElementById("testA");
a.onclick =function(e){
    if(e.preventDefault){
    e.preventDefault();
}else{
    window.event.returnValue == false;
    }
}
0 分享到:
和我们在线交谈!