0

当我单击浏览器窗口中的任何位置时,如何关闭由 toggle() 函数打开的元素。例如此站点上的 StackExchange 链接。当我单击此链接时,会出现 div,但如果我单击窗口中的任何位置,它就会消失。

4

4 回答 4

1

你可以这样做:

$(function(){
  $('.yourelem, .targetDiv').click(function(ev){
    $('.targetDiv').slideDown('fast');
    ev.stopPropagation();
  });

  $(document).click(function(){
    $('.targetDiv').slideUp('fast');
  });
});

查看jsbin中的动作

于 2013-02-22T10:26:54.923 回答
1

试试这个 :

HTML

<a id="show" href="#">show</a>
<div class="test" style="display: none;">
    hey
</div>

JS

$('a#show').click(function(event) {
    event.stopPropagation();
    $('.test').toggle(); 
});

$('html').click(function() {
    $('.test').hide();
});
于 2013-02-22T10:26:59.790 回答
0

看看jquery的.blur函数http://api.jquery.com/blur/

一个简单的例子:

 $("#myelement").blur(function(){
    $(this).hide(); 
    //or
    $("#targetelement").hide();
 });
于 2013-02-22T10:29:00.717 回答
0

制作变量 sel true,如果我们点击div.

if(sel)
$(".stackExchange").slideDown(800);

else 
$(".stackExchange").slideUp(800);
于 2013-02-22T10:31:00.587 回答