document.onclick=function(e){
e=window.event||e;
obj = e.srcElement ? e.srcElement : e.target;
    if(obj.id!="my_div"){
     document.getElementById("my_div").style.display="none";
    }
};

解决方案 »

  1.   

    1楼的没效果啊,报错obj.id为空或不是对象
      

  2.   


    document.onclick=function(e)
    {
    e=window.event||e;
    var obj = e.srcElement ? e.srcElement : e.target;
    if(obj.id!="b1")
    {
    document.getElementById("DVI1").style.display="none";
    }
    else
    {
    document.getElementById("DVI1").style.display="";
    }
    }
    </script>
      

  3.   

      
      貌似 楼上已经给出了答案,那我总结下吧,呵呵。
    <script>
    // 按钮点击事件
    function btnClick(){
       // 显示层
       document.all.my_div.style.display = "block";
    }document.onclick=function(e){
       e=window.event||e;
       var obj = e.srcElement ? e.srcElement : e.target;
       if(obj.id!="btn1"){
         document.getElementById("my_div").style.display="none";
       }
       else{
         document.getElementById("my_div").style.display="";
       } 
    }
    </script>
    <input type='button' id='btn1' onclick='btnClick' value='点击'>
    <div id='my_div' style='display:none;'>aaaaa</div>
      

  4.   

    我调试了,我报错啊,<script type="text/javascript">
    document.onclick=function(e){
        e=window.event||e;
        obj = e.srcElement ? e.srcElement : e.target;
        if(obj.id!="my_div"){
         document.getElementById("my_div").style.display="none";
        }
    };
    function xxx(){     document.getElementById("my_div").style.display="inline";};
    </script><div id="my_div" style="height:111px;width:111px;background:red;" onclick="event.cancelBubble=true;">
    mydiv
    </div>
    <div id="my_div2" style="height:111px;width:111px;background:green;">
    other div1
    </div>
    <div id="my_div3" style="height:111px;width:111px;background:blue;" >
    other div2
    </div>
    <div onclick="event.cancelBubble=true;">
    <input type="button" value="show" onclick="xxx();">
    </div>
    <table><tr><td>test table</td></tr></table>