我想关闭(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”。
答案 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');
}
});
});