2

我目前正在使用这个 jquery 来一次打开一系列 div。

jQuery:(展示)

$("h4.toggle").toggleClass("active shown").nextAll().slideToggle("fast");

我遇到的是,如果事先触发了单个切换,然后有人使用“showall”,它将反转切换而不是显示所有其他 div。所以,如果第一个是打开的,其余的被隐藏了,那么现在第一个被隐藏了,其余的都被显示了。

这是 HTML div 的示例:

 <div id="section" class="legal2">

      <h4 class="dark toggle" id="alt1">Name Name</h4>

      <div class="toggling alt1 hiding">
</div></div>

...

<div id="section" class="legal2">

      <h4 class="dark toggle" id="alt15">Name Name</h4>

      <div class="toggling alt15 hiding">
</div></div>

我在 h4 上有一个 .toggle 函数,它几乎就是这样做的:

$('.'+which).toggleClass('showing').slideToggle(300);

有没有一种简单的方法可以使这个“显示所有”工作?我尝试使用 if/else,但无法让它工作。

谢谢

4

1 回答 1

3

在这种情况下,您可以使用slideDown()代替。slideToggle向下滑动显示带有滑动动画而不是切换的元素(显示为隐藏,隐藏到显示)。对于已经显示的元素,slideDown只显示它们并且不对它们进行动画处理。(slideUp()如果您有“全部隐藏”功能,还有一个功能)

http://api.jquery.com/slideDown/

演示

同样,使用addClass/removeClass代替toggleClass.

于 2013-06-28T21:30:41.973 回答