在阻止冒泡的过程中,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()
}
如果<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
}
首先:你不想使用的方法恰恰是推荐的最好的方法,为什么不用推荐的方法呢。
如果实在想用第一种,onclick="F_Bind_ZhongLeiClick(this)"
修改为
onclick="F_Bind_ZhongLeiClick(this)return false"