使用Javascript高亮显示带有子菜单的当前页面链接
Highlight Current Page Link With Submenus Using Javascript
我正在尝试突出显示当前页面链接,如下。。。此处的图像
感谢在我之前提出这个问题的其他人,我能够做到这一点。
但是,我的导航栏有一个子菜单。
每当我在子菜单中时,我都会尝试突出显示子菜单的父菜单。但是,每当我从父菜单(例如"MAIN")转到另一个父菜单(如"TRANSFEREES")时,就会发生这种情况。。。此处的图像
这是菜单的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()。
我还认为最好使用父母而不是最亲密的人,你应该尝试这样的方法:
$('ul#nav li a').click(function(){
var listElement = $(this).parents('ul#nav li');
listElement.addClass('active');
listElement.siblings().removeClass('active');
return false;
});
尝试为列表中的每个列表项及其子列表删除活动类,然后将活动类添加到所需的项中,否则您将不得不控制太多情况。
这是代码:
$('ul#nav li a').click(function(){
$('#nav li').removeClass('active');
$(this).addClass('active');
var possibleParent = $(this).parents('#nav li');
if (possibleParent) possibleParent.addClass('active');
});
这里有一个Codepen演示:http://codepen.io/anon/pen/jWORRG
相关文章:
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- 菜单当前和悬停效果
- 获取当前页面的URL并将其附加到Facebook共享链接(使用javascript)
- 如何在 safari 中获取当前页面的 url 和标题
- Chrome扩展程序将外部JavaScript添加到当前页面的html中
- 在服务器更改时自动更新/重新加载当前页面的库
- 检测具有 href 属性的“A”标记,该属性等于当前页面的 URL
- 如何定义相对于当前页面的 URL w jQuery
- 我想通过javascript生成当前页面的url,并添加两个参数
- 从当前页面的URL中删除哈希
- 如何在手风琴导航菜单中设置当前页面子链接及其父链接的样式
- Javascript获取当前页面的html
- 要在菜单和页脚之间从右侧滑动的内容
- 防止侧边栏菜单在页脚下方滚动
- 如何在文本输入中显示当前页面的url,供用户复制
- 如何使用Jquery和Javascript在当前页面的Div中显示错误消息
- jQuery:添加Class Active到<与当前页href
- 如何将当前页内容追加到另一页
- 解析当前页面的html
- 使用javascript在重载时更改当前页面的URL