我有许多嵌套列表,并且一些jQuery会在单击父标题时显示隐藏它们。

IT工作正常,但行为略有错误。如果嵌套列表可见,并且单击父标头,则我希望该嵌套列表被隐藏。目前,它会执行此操作,但之后会立即显示嵌套列表。

请查看此jsFiddle以获取工作代码:

http://www.jsfiddle.net/4kG2b/

最佳答案

如果同级<ul>当前处于隐藏状态(可以有效地使其切换),则可以触发显示,如下所示:

    $nestList.filter(":hidden").show("fast", function() {
        $(this).closest("li").removeClass("closed").addClass("open");
    });


You can test it out here。总的来说,您可以将其缩小并获得相同的效果,如下所示:

$("#expander ul").hide();
$("#expander h4").live("click", function() {
    $(this).siblings("ul").toggle("fast", function(){
        $(this).closest("li").toggleClass("open closed");
    }).closest("li").siblings(".open").toggleClass("open closed")
                    .children("ul").hide("fast");

    $(".scroll").jScrollPane();
});


You can try that version out here

关于jquery - jQuery切换嵌套列表行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3987444/

10-09 18:59