gpt4 book ai didi

javascript - Jquery - 如何将事件类添加到整个导航菜单路径?

转载 作者:行者123 更新时间:2023-11-28 06:07:51 25 4
gpt4 key购买 nike

我有一个 3 级菜单,我想为第一个事件 li 使用一个类,为所有其他后续 li 使用第二个类。当我单击一个选择时,第 3 级将在整个路径(第 1 级、第 2 级、第 3 级)保持事件状态。如果我单击第 2 级上的选择以保持事件状态直到第 2 级。

我有以下内容:

$(document).ready(function(){
$('.sf-menu li a').each(function(index) {
if((this.pathname.trim() == window.location.pathname))
$(this).parent().addClass("selected");
var next_li = $(this).parent().next();
$('a', next_li).addClass("selected2");
});
});

最佳答案

我想我这次搞定了,它有点脏,但它能用。

首先添加类,以便您可以识别一级、二级和三级<li>元素。在 foreach 或制作菜单的任何按钮中执行(如果没有这样的按钮,则手动执行):

<ul id="navlist" >
<li id="home" class="firstLevel">
<a class="nav" href="home">Home</a>
<ul class="secondLevel">
<li class="secondLevel">
<a class="nav2" href="home">sub-Home1</a>
<ul>
<li class="thirdLevel"><a class="nav3" href="home">sub-sub-Home1></a></li>
<li class="thirdLevel"><a class="nav3" href="home">sub-sub-Home1></a></li>
</ul>
</li>
<li><a class="nav2" href="home">sub-Home2</a></li>
</ul>
</li>

<li id="about" class="firstLevel">
<a class="nav" href="about-us">About Us</a>
</li>
</ul>

然后使用 jQuery closest .它向上遍历 DOM 树并匹配最近的元素,你可以传递一个选择器(我们刚刚创建的 firstLevel 或 secondLevel 类):

$('#navlist a').on('click', function (e) {
e.preventDefault(); //prevent the link from being followed
$('#navlist a').removeClass('selected');
$('#navlist a').removeClass('selected2');
$(this).closest('.secondLevel').children('a').addClass('selected2');
$(this).closest('.firstLevel').children('a').addClass('selected2');
$(this).addClass('selected');
});

然后你添加!importantselected 类(因此,当出现类似“关于我们”链接中的冲突时,selected 是应用的类)。这是最脏的部分。

检查工作 fiddle :https://jsfiddle.net/4r5vg/661/

关于javascript - Jquery - 如何将事件类添加到整个导航菜单路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36354956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com