点击另一个li时,jQuery slideToggle li

时间:2013-04-28 15:40:14

标签: jquery css toggle

我想关闭(slideToggle)一个带有嵌套ul和li的侦听器,当单击另一个带有嵌套ul和li的侦听器时。

这是我用于切换本身的jQuery:

$(document).ready(function () {
    $("ul > li.closed").click(function (e) {
        if (e.target === this) {
            var li = $(this).closest('li');
            li.find(' > ul').slideToggle('fast');
            $(this).toggleClass("closed open");
        }
    });
});

在我的小提琴上:我想在点击“主题2”时关闭“主题1”。 我想在点击另一个“Subtopic x”时关闭“Subtopic 1”。

FIDDLE

1 个答案:

答案 0 :(得分:1)

我建议您首先关闭所有打开的列表,然后打开单击的一个:

删除li.closed中的规则> ul

li.closed > ul {

}

因为 display:none slideToggle() 发生冲突,当您点击 两次 在同一个 li

并将脚本更改为

$(document).ready(function () {    
    $("#nav li ul").css('display','none');
    $("ul > li.closed").click(function (e) {
        if (e.target === this) {
            $(this).siblings("li.open").find(" > ul").slideToggle('fast',function(){
                $(this).parents("li.open:first").toggleClass("open closed");   
            });

            $(this).toggleClass("closed open").find(" > ul").slideToggle('fast');
        }
    });
});