使用slideToggle时,如何让打开的项目保持打开状态

时间:2013-11-06 03:04:35

标签: javascript jquery

这是大手柄的js

jQuery( document ).ready(function() {
   jQuery( ".docit-main-header" ).click(function() { 
     jQuery(this).nextUntil().find('.docit-sub-post').slideToggle();
     jQuery(this).nextUntil().find('.docit-sub-sub-menu-wrap').slideToggle();
});

这是小手柄的js

jQuery( ".docit-sub-header" ).click(function() {
   jQuery(this).nextUntil('div').slideToggle();
 }); 

如何解决这个问题,如果你点击小手柄,它将关闭一个项目,然后点击大手柄,开放的手柄保持打开状态,其他手柄滑开。而不是翻转。以下是jsfiddle.net/6U6fC/8/

上的示例

2 个答案:

答案 0 :(得分:1)

也许最简单的方法是将类添加到.docit-main-cat-title项(如open或active)。当您单击标题时,它们都是已打开的类,您将全部关闭它们。如果没有,你打开它们。

另一种选择是用.filter(“:visible”)来检查所有这些是否可见,并采取相应的行动。

答案 1 :(得分:0)

你每次都在'子帖'和'子菜单包'上调用slideToggle jQuery'toggle'函数将打开任何已关闭的东西并关闭任何打开的东西。

尝试创建条件并在选择器中使用:visible,因此只在可见或隐藏元素上调用slideToggle。