在body上设置了事件onmouseup,再在DIV上设置事件onmouseup,这样两个事件会同时执行,如何只执行div的事件div之外点击时,再触发body的onmouseup事件

解决方案 »

  1.   

    可以在body的onmouseup中判断出发事件的DOM节点
    function handlebodyEvent(event)
    {
    var obj
    if (document.all)
    {
        obj = window.event.srcElement;    
    }
    else
    {
        obj = event.target;
    }
    if (event == div)
    {
        return;
    }
    .....
    }
      

  2.   

    function handlebodyEvent(event) 

    var obj 
    if (document.all) 

        obj = window.event.srcElement;    

    else 

        obj = event.target; 

    if (obj.id == div.id) //纠正一下

        return; 

    ..... 
    }
      

  3.   

    取消事件冒泡<!DOCTYPE html >
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>取消冒泡</title>
    <script type="text/javascript">
    function onClick(oEvent){
    alert("div"); if(window.event){
    window.event.cancelBubble = true;
    }else{
    oEvent.stopPropagation();
    }
    }
    </script>
    </head>
    <body onclick="alert('body');">
    <div id="div1" onclick="onClick(event)">flkdjas;fldkjsa;fdsjf;lkdjsa;fdsa</div>
    body
    </body>
    </html>
      

  4.   

    在FF下要传,如果是IE Only 可以去掉
      

  5.   

    两次执行都是
    window.event是true
      

  6.   

    这样的话<!DOCTYPE html >
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>取消冒泡</title>
    <script type="text/javascript">
    function onClick(oEvent){
        
        if(window.event){
            window.event.cancelBubble = true;
            alert("1");
        }else{
            oEvent.stopPropagation();
           alert("2");    }
    }
    </script>
    </head>
    <body onclick="onClick(event);">
    <div id="div1" onclick="onClick(event)">flkdjas;fldkjsa;fdsjf;lkdjsa;fdsa</div>
    body
    </body>
    </html>你再帮忙改改
      

  7.   

    你页面也是这样,body和div调用同一个函数?
    要是这样就改成:<!DOCTYPE html >
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>取消冒泡</title>
    <script type="text/javascript">
    function onClick(oEvent){
    oEvent = oEvent || window.event;
    var target = oEvent.target || oEvent.srcElement;
    if(target == document.body){
    alert("body");
    }else{
    alert("div");
    if(window.event){
    window.event.cancelBubble = true;
    }else{
    oEvent.stopPropagation();
    }
    }
    }
    </script>
    </head>
    <body onclick="onClick(event);">
    <div id="div1" onClick="onClick(event)">flkdjas;fldkjsa;fdsjf;lkdjsa;fdsa</div>
    body
    </body>
    </html>