javascript - 使用 Javascript 突出显示带有子菜单的当前页面链接

标签 javascript jquery html css

我正在尝试突出显示当前页面链接,就像这样... Image Here

感谢在我之前提出此问题的其他人,我能够正确地这样做。

但是,我的导航栏有一个子菜单。

每当我在其中时,我都试图突出显示子菜单的父级。但是,每当我从父菜单(例如“MAIN”)转到子菜单时从不同的父菜单(例如“TRANSFEREES”)发生这种情况...... Image Here

这是菜单的 html...

<ul id = "nav">
<li><a href = "Index.html">MAIN</a></li>
<li><a href = "About.html">ABOUT US</a></li>
<li><a href = "Admission.html">ADMISSION</a>
    <ul class = "sub">
        <li><a href = "Freshmen.html">FRESHMEN</a></li>
        <li><a href = "Transfer.html">TRANSFEREES</a></li>
    </ul>
</li>   
</ul>

这是 Javascript 代码...

$('ul#nav li a').click(function(){
$(this).closest('ul#nav li').addClass('active').siblings().removeClass('active');       
return false;
});

还有 CSS...

ul#nav li.active{
background:#9993a6;}

我已经尝试到处寻找解决方案,我是 Javascript 的新手,所以如果你们中的任何人能帮助我...我将不胜感激...提前致谢。

最佳答案

您删除事件类的方式是错误的,因为 addClass 不返回 jQuery 对象,因此您不能在其上使用 siblings()。

我也认为使用 parents 而不是 closest 更好,你应该尝试这样的事情:

$('ul#nav li a').click(function(){
    var listElement = $(this).parents('ul#nav li');
    listElement.addClass('active');
    listElement.siblings().removeClass('active');
    return false;
});

关于javascript - 使用 Javascript 突出显示带有子菜单的当前页面链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34119611/

相关文章:

html - 如何让我的 <ul> 悬停在同一个确切的位置开始?

javascript - 函数生成器javascript

javascript - 如何从 Angular js 中的指令调用 Controller 函数?

jquery - 在 jQuery 前置后悬停不清除 IE 8 和 9 菜单项

javascript - 动态图像刷新

javascript - 尝试用 jQuery 制作一个简单的网格

javascript - 如何在 React Native 的 FlatList 顶部和底部(同时)使用 "Pull to refresh"?

Javascript 网址管理

javascript - 图像加载后的 Jquery 延迟加载,不应用 css

c# - RadioButtonList 中 ListItems 的选项卡索引