有几次遇到a链接里面包含click点击方法,这时候会触发click事件,还会触发a链接跳转。这时候就需要阻止冒泡了。
添加
event.stopPropagation();
就可以了。在chrome上可以使用。
本以为万事大吉了,没想到火狐不支持event事件。
既然问题来了,就得解决。所以搜遍了百度,得到了以下的代码。
//兼容火狐 获取event方法
function getEvent(){
if(window.event){return window.event;}
func = getEvent.caller;
while(func != null){
var arg0 = func.arguments[0];
if(arg0){
if((arg0.constructor == Event || arg0.constructor == MouseEvent
|| arg0.constructor == KeyboardEvent)
|| (typeof(arg0) == "object" && arg0.preventDefault
&& arg0.stopPropagation)){
return arg0;
}
}
func = func.caller;
}
return null;
}
//阻止冒泡到下一个事件
function stopPropagations(){
var ev = getEvent();
if (window.event) {
ev.cancelBubble = true;
}else if(ev.preventDefault){
ev.stopPropagation();//阻止冒泡
}
}
经过测试,火狐完美运行。
自己保存一下,以便以后查找。