JS如何阻止事件冒泡

JavaScript017

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

}

有种可能是,某个DOM节点绑定了某事件监听器,本来是想当该DOM节点触发事件,才会执行回调函数。结果是该节点的某后代节点触发某事件,由于事件冒泡,该DOM节点事件也会触发,执行了回调函数,这样就违背了最初的本意了。

首先:你不想使用的方法恰恰是推荐的最好的方法,为什么不用推荐的方法呢。

如果实在想用第一种,onclick="F_Bind_ZhongLeiClick(this)"

修改为

onclick="F_Bind_ZhongLeiClick(this)return false"