JS slideToggle关闭其他打开的div

Jon*_*Jon 1 javascript jquery

我在页面上有大约20个按钮.我已经用jquery设置它们来滑动切换以显示和隐藏div.它运行良好,但只有在选择新div之前使用相同的按钮关闭div.我希望如果单击一个按钮,它将向下滑动打开的div,然后滑下它自己的div.现在,如果div仍在显示,并且单击了另一个按钮,则open div将不会关闭.

我认为有太多的按钮可以使if函数在打开时按名称测试每个div,然后向上滑动.是否有一般滑动所有开放的div?

如果我添加一个类并使用css来显示:block,我不会得到动画,所以我使用的是slidetoggle.如果有更好的方法,我很乐意重做我的代码?有没有办法关闭开放的div?

$(document).ready(function(){
  $('.show1').click(function(){
    $(".row1").slideToggle();
  });

  $('.show2').click(function(){
    $(".row2").slideToggle();
  });

  $('.show3').click(function(){
   $(".row3").slideToggle();
  });
});
Run Code Online (Sandbox Code Playgroud)

Py.*_*Py. 7

我看到的最简单的方法是为row你的所有div 添加一个类(比如)并隐藏它们使用 $(".row").not(".rowX").slideUp();not rowX来保持切换活着(并且使用该更新,顺序无关紧要;)).

这最终会像:

$('.show3').click(function(){
   $(".row").not(".row3").slideUp();
   $(".row3").slideToggle();
});
Run Code Online (Sandbox Code Playgroud)