javascript - jQuery slideToggle 一次切换多个 Div

标签 javascript jquery

这是我的代码,

$(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 class="showhide">Button</a>
<div class="dropdown">
<a href="#">Update</a>
<a href="#">Delete</a>
</div>


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

此代码可以很好地打开和关闭 div。此外,如果我在 div 打开时单击外部,它会很好地关闭它们。

但是,问题是如果我一个接一个地单击它们,它会同时打开多个 div。我怎样才能一次只打开一个 div?

最佳答案

您可以在单击任何 showhide 元素时隐藏 siblings

$('.dropdown').hide()

$('.showhide').click(function(e) {
  e.stopPropagation();
  $(this).siblings('.showhide').next('.dropdown').slideUp()
  $(this).next('.dropdown').slideToggle(100);
});

$(window).click(function(e) {
  var container = $(".dropdown");
  if (container.is(':visible') && !$(e.target).closest('.dropdown').length) {
    container.hide();
  }
});
a.showhide {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="showhide">Button</a>
<div class="dropdown">
  <a href="#">Update</a>
  <a href="#">Delete</a>
</div>


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

关于javascript - jQuery slideToggle 一次切换多个 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46645785/

相关文章:

javascript - 有没有办法让两个 HTML ID 链接到一个 JavaScript 函数?

javascript - rails 5 : AJAX variable undefined on ajax:error/ajax:success events

javascript - 为什么在 PHP 中使用 intval 和 hexdec 内置函数的十六进制到十进制字符串输出不同?

javascript - 使用 D3.js 更改 SVG 中的变换值

javascript - 使用localStorage存储jQuery范围 slider 的最大值和最小值

javascript - 使用 jqueryRotate 插件将图像旋转 90 度

javascript - 如何使用 jquery 的 .load() 实现 "animate"页面之间的转换

javascript - CSS 样式化单词中的单个字符

javascript - 如何使 HTML/NodeJS 表单根据响应转到另一个表单,有点像 Google 表单的 "Go to section based on answer?"

javascript - 动画命令完成后调用命令