好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

页面内部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();

就可以了。

很实用


查看更多关于页面中内部DIV让点击外部DIV的JS 事件不发生(阻止冒泡事件)的详细内容...

  阅读:54次