我不是 jquery 方面的专家,但我正在尝试让菜单正常工作。基本上,我有一个由最多 3 层嵌套列表组成的菜单。第一级有一个小箭头,有一个背景图像,在打开第一级列表时打开或关闭。任何其他嵌套列表不需要背景图像。 当您单击菜单时,我的脚本会打开菜单,并且还应该将第一级列表从“非事件”类切换到“事件”类。这是脚本:
$(document).ready(function(){
$("#left-navigation-holder ul.level1 li.inactive").toggle(function(){
$(this).addClass("active");
}, function () {
$(this).removeClass("active");
});
$("#left-navigation-holder li a").click(function(){
menu = $(this).parent('li').children('ul');
menu.toggle();
});
});
问题是,即使未单击第一级列表,单击第二级和第三级列表时也会发生切换功能,导致箭头切换。我认为使用 $("#left-navigation-holder ul.level1 li.inactive").toggle 会将函数限制为具有“inactive”类的第一级列表。
非常感谢任何帮助。
本
最佳答案
使用直接子选择器,像这样:
$("#left-navigation-holder ul.level1 > li.inactive")
//or...
$("#left-navigation-holder > ul > li > a")
在你的选择器中,ul.level1 li.inactive
表示 <li class="inactive">
任何地方在<ul class="level1">
下面, 把 >
让它成为ul.level1 > li.inactive
说只匹配 <li>
直接在那<ul>
下面,而不是下面的任何数量的级别。
您可能总体上这样做,删除 .level1
除非它用于其他目的:
$("#left-navigation-holder > ul > li.inactive")
关于Jquery选择器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2777198/