Event on a click everywhere on the page outside of the specific div

后端 未结 4 1327
我在风中等你
我在风中等你 2020-12-03 12:23

I\'d like to hide a div when user click anywhere on the page outside of that div. How can I do that using raw javascript or jQuery?

相关标签:
4条回答
  • 2020-12-03 12:38

    First idea, in raw javascript (from this post):

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
    <html>
      <head>
        <title>Untitled Document</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <meta http-equiv="Content-Style-Type" content="text/css">
        <meta http-equiv="Content-Script-Type" content="text/javascript">
        <style type="text/css">
          <!--
          #mydiv{
            background-color: #999999;
            height: 100px;
            width: 100px;
          }
          -->
        </style>
        <script type="text/javascript">
          document.onclick=check;
          function check(e)
          {
            var target = (e && e.target) || (event && event.srcElement);
            var obj = document.getElementById('mydiv');
            if(target!=obj){obj.style.display='none'}
          }
        </script>
      </head>
      <body>
        <div id="mydiv">my div</div>
      </body>
    </html> 
    

    Tested with IE6 and FireFox3.1, it does work as advertised.

    0 讨论(0)
  • 2020-12-03 12:48

    Attach a click event to the document to hide the div:

    $(document).click(function(e) {
       $('#somediv').hide();
    });
    

    Attach a click event to the div to stop clicks on it from propagating to the document:

    $('#somediv').click(function(e) {
       e.stopPropagation();
    });
    
    0 讨论(0)
  • 2020-12-03 12:54

    It sure sounds like you want a modal dialog. This jQuery plugin http://code.google.com/p/simplemodal/ looks like it has potential.

    0 讨论(0)
  • 2020-12-03 12:59

    If the div has the focus, you could attach to the onblur event.

    0 讨论(0)
提交回复
热议问题