jQuery slideToggle Not Closing Div

时间:2017-10-09 10:13:26

标签: javascript jquery

这段代码打开div很好,但是当我再次点击按钮时,不是关闭它重新打开div。如何在第二次点击时关闭?

$(document).ready(function() {
  $('.showhide').click(function(e) {
    $(this).nextAll('.dropdown:lt(1)').slideToggle(100);
  });
  
  $(document).mouseup(function(e) {
    var container = $(".dropdown");
    if (container.is(':visible') && !$(e.target).closest('.dropdown').length) {
      container.hide();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" class="showhide">Button</a><br />

<div class="dropdown">
  <a href="#">Update</a>
  <a href="#">Delete</a>
</div>
<div class="dropdown">
  <a href="#">Update</a>
  <a href="#">Delete</a>
</div>
<div class="dropdown">
  <a href="#">Update</a>
  <a href="#">Delete</a>
</div>

2 个答案:

答案 0 :(得分:1)

使用

进行测试
$(this).nextAll('.dropdown:lt(1)').is(":visible"))

答案 1 :(得分:0)

将单击事件附加到关闭div的窗口。将单击事件附加到按钮以停止传播到文档正文

$(document).ready(function (e) {

$('.showhide').click(function(e) {

$(this).nextAll('.dropdown:lt(1)').slideToggle(100);
e.stopPropagation();
});


$(window).click(function(e) {
  var container = $(".dropdown");
  if (container.is(':visible') && !$(e.target).closest('.dropdown').length) {
  container.hide();
  }
});



});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<a href="#" class="showhide">Button</a><br />

<div class="dropdown">
  <a href="#">Update</a>
  <a href="#">Delete</a>
</div>