有没有办法强制$ .toggle()来持续切换已经隐藏的孩子?

Bry*_*gee 4 jquery show-hide

我有一个应用程序,可以在不同级别过滤数据集,并且 - 出于性能原因 - 能够独立切换嵌套div的相应显示将是很好的.出现的问题是,切换会将隐藏的子项上的显示属性更改回其原始状态,但如果其中一个祖先已被隐藏,则不会将其更改为无.

复制:在这个JSFiddle中,

  1. 单击"切换3"按钮,然后单击"切换2"按钮.
  2. 单击"切换3"按钮,然后单击"切换2",您将找到3个已恢复(按预期).
  3. 现在单击"切换2"按钮,然后单击"切换3".
  4. 再次单击"切换2"时,仍然可以看到3(???).

hun*_*ter 7

切换可以采用布尔值

$(selector).toggle(false);
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/toggle/

.toggle(showOrHide)

showOrHideA指示是否显示或隐藏元素的布尔值.


UPDATE

您可以通过创建一个简单的hiddencss类调用toggleClass()而不是使用来实现所需的功能toggle().toggle()如果有问题的元素不可见,它似乎完全跳过它自己的功能.

http://jsfiddle.net/hunter/GufAW/3/

$("#toggle-1").click(function() {
    $("#1").toggleClass("hidden");
});
$("#toggle-2").click(function() {
    $("#2").toggleClass("hidden");
});
$("#toggle-3").click(function() {
    $("#3").toggleClass("hidden");
});
Run Code Online (Sandbox Code Playgroud)