javascript - 如何将活动类设置为菜单项(sessionStorage)
问题描述
我有这样的代码:
<ul class="nav navbar-nav navbar-right">
<li><a href="#" class="dropdown-toggle " data-toggle="dropdown" data-hover="dropdown" data-close-others="true">Some <i class="fa fa-caret-down" aria-hidden="true"></i></a>
<ul class="dropdown-menu">
<li><a href="">Some 1</a></li>
<li><a href="">Some 2</a></li>
<li><a href="">Some 3</a></li>
<li><a href="">Some 4</a></li>
</ul>
</li>
<li><a href="">News</a></li>
</ul>
和JS代码
$(document).ready(function () {
$(".nav li a ").click(function () {
var id = $(this);
$(".nav li a").removeClass("active");
$(id).addClass("active");
sessionStorage .setItem("mylink", $(id).text());
});
var mylink = sessionStorage .getItem('mylink');
if (mylink !== null) {
$("li:contains('" + mylink + "')").addClass("active");
}
});
我正在尝试实现这一点,当我单击导航中的项目时会添加“活动”类。有人可以帮我吗?
解决方案
设置类和 sessionStorage 值的逻辑工作正常。您遇到的问题是,当页面加载时,您将active
类放在li
而不是a
. 因此,调用$(".nav li a").removeClass("active")
什么都不做。要解决此问题,请更改此行:
$("li:contains('" + mylink + "')").addClass("active");
至
$("li a:contains('" + mylink + "')").addClass("active");
推荐阅读
- mongodb - 无法访问 MongoDB 属性或函数
- css - 如何摆脱css中的水平滚动条
- xml - 如何从 XML 字符串中删除 XML 意图。?
- reactjs - 在 Go 中从 Back 发送 Cookie,这是一个 api 休息,使用 React JS 发送到前端
- c# - 是否可以修改内存中的内容?
- android - 颤振:ListWheelScrollView 放大镜不起作用
- java - 在基于 Spring Boot 的应用程序中使用 REST API 输入在运行时设置模式名称
- java - 加入两个数据帧,限制一个数据帧的行
- c++ - ESP8266,Twilio 不发送短信
- cmake - MinGW64 下 g++ 的 "-x c++" 标志导致 "stray [...] in program" 错误