Jquery选择器问题

标签 jquery css css-selectors

我不是 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/

相关文章:

jQuery 隐藏字段

javascript - 通过 JavaScript 加载 Javascript 引用并立即从控制台调用它

css - 不考虑类名的第 N 个子选择器?

javascript - 快速单击按钮会导致选择按钮下方的字段

html - 如何在将鼠标悬停在不同 div 中的另一个图像上时显示图像

css - 使 div 粘在另一个 div 的底部(而不是视口(viewport)的底部)

javascript - 使用 svg.js 从 SVG 中的字体文件指定字体

jquery - 如何删除 jQuery 选择的最后一个元素?

css - 如何通过嵌套在 Sass 中向属性选择器添加附加信息?

javascript - 如何使用 jQuery/Ajax 执行 MySQL 查询