有几次遇到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();//阻止冒泡 } }
经过测试,火狐完美运行。
自己保存一下,以便以后查找。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226287.html原文链接:https://javaforall.net
