JS如何阻止事件冒泡

JavaScript08

JS如何阻止事件冒泡,第1张

如果<p>是在<div>里面,那么呢,<P>有一个onclick事件,<div>也有onclick事件,为了触发<P>的点击事件时,不触发父元素的点击事件,那么就需要调用如下函数:

代码如下:

function stopBubble(e){

if(e&&e.stopPropagation){//非IE

e.stopPropagation()

}

else{//IE

window.event.cancelBubble=true

}

}

<a onclick=''>如果要阻止默认事件的触发,即默认的href事件,那么就需要调用如下函数:

代码如下:

function stopDefault( e ) {

//阻止默认浏览器动作(W3C)

if ( e &&e.preventDefault )

e.preventDefault()

//IE中阻止函数器默认动作的方式

else

window.event.returnValue = false

return false

}

js阻止冒泡

在阻止冒泡的过程中,W3C和IE采用的不同的方法,那么我们必须做以下兼容。

复制代码 代码如下:

function stopPro(evt){

var e = evt || window.event

//returnValue如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,

//可以取消发生事件的源元素的默认动作。

//window.event?e.returnValue = false:e.preventDefault()

window.event?e.cancelBubble=true:e.stopPropagation()

}