页面内部DIV让点击外部DIV 事件不发生(阻止冒泡事件)

如标题的情况,经常发生,尤其是在一些弹出框上面之类的。

<script>
function zuzhimaopao(){
e.stopPropagation();
}
</script>

一般的google浏览器添加上面此项就可以,但是发现在FF下并不工作,于是有了如下:

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 cancelBubble()
{
var e=getEvent();
if(window.event){
//e.returnValue=false;//阻止自身行为
e.cancelBubble=true;//阻止冒泡
}else if(e.preventDefault){
//e.preventDefault();//阻止自身行为
e.stopPropagation();//阻止冒泡
}
}

只要在你的方法最后插入

cancelBubble();
就可以了。
很实用
上一篇:merge sort and quick sort 自己去理解吧


下一篇:C++11 weak_ptr智能指针