点击外面时隐藏div

时间:2013-02-01 18:26:40

标签: javascript

我正在使用一个简单的JavaScript代码来切换div onclick。你可以在这个链接上看到它:k-prim.biz/Untitled-2.html - 这是一个非常简单的演示页面。我想做的是不仅在点击"链接"时隐藏div。但也可以在div外面点击。另外我如何更改"链接"的css样式?什么时候显示div?提前谢谢!

<script type="text/javascript" language="javascript"> 
   function showHide() {
   var ele = document.getElementById("showHideDiv");
if(ele.style.display == "block") {
        ele.style.display = "none";
  }
else {
    ele.style.display = "block"; }
}
</script> 
<a href="#" onClick="return showHide();" >link</a>
<div id="showHideDiv" style="display:none;">hello!</div>    

3 个答案:

答案 0 :(得分:5)

您没有给我任何代码可供使用,因此您必须根据自己的需要进行修改:

$(document).click(function() {
    if(this != $("#the_div")[0]) {
        $("#the_div").hide();
    }
});

如果用户点击页面上不是div的任何地方,那将隐藏div。

答案 1 :(得分:2)

HTML:

<div id="settings">
<input/><select></select><span>text</span>
</div> 

使用Javascript:

var settings = document.getElementById('settings');

document.onclick = function(e){

    var target = (e && e.target) || (event && event.srcElement);
    var display = 'none';

    while (target.parentNode) {

        if (target == settings) {
            display ='block';
            break;
        }
        target = target.parentNode;
    }

settings.style.display = display;

}

答案 2 :(得分:1)

这是我写的快速黑客。我不确定您为什么要通过单击文档上的任何位置来执行相同的活动。如果你想这样做,用jQuery(document)替换jQuery('#link')。

    <html>
        <head>
           <script type="text/javascript">
               $(document).ready(function(){
                  jQuery('#link').click(function(){
                       if(jQuery('#showHideDiv').hasClass('hide')) {
                          jQuery('#showHideDiv').removeClass('hide');
                          jQuery('#link').css('color', 'red');
                       } else {
                           jQuery('#showHideDiv').addClass('hide');
                           jQuery('#link').css('color', 'blue');
                       }
                    });            
                });
            </script>
        </head>
       <body>
            <a href="#" id="link" >link</a>
            <div id="showHideDiv" class="hide">hello!</div>    
       </body>
    </html>

这是jsfiddle的链接

http://jsfiddle.net/EUScV/9/

并添加css规则

   .hide {
        display:none;
    }