jquery - 遍历导航标签并停留在其中一个上
问题描述
我使用引导程序 3.3.7 编写了一个导航选项卡
<ul class="nav nav-tabs nav-justified">
<li><a href="#">Concept</a></li>
<li><a href="#">Code</a></li>
<li ><a href="#">Read</a></li>
<li><a href="#">Action</a></li>
</ul>
每次我单击一个选项卡时,它都会被激活,而其他选项卡则被停用,
<script>
$(document).ready(
$(".nav-tabs li").on("click", function(){
$(".nav-tabs li").removeClass("active");
$(this).addClass("active");
}));
</script>
它适用于代码,
但是,当我刷新页面时,所有标签active
类都被删除了,
我希望它停留在点击的标签上,直到触发另一次点击。
解决方案
你正在做的是在客户端。他们不会坚持下去。使用localStorage
Cookie 或 Cookies 来实现持久状态,即使在页面重新加载后也是如此。
此外,您下面的代码将不起作用并引发错误。更正后的代码是:
$(document).ready(function() {
$(".nav-tabs li").on("click", function() {
$(".nav-tabs li").removeClass("active");
$(this).addClass("active");
});
});
所以每次点击事件发生时,设置localStorage
:
$(document).ready(function() {
$(".nav-tabs li").on("click", function() {
$(".nav-tabs li").removeClass("active");
$(this).addClass("active");
localStorage.setItem("active", $(this).text().trim());
});
});
当你加载页面时,设置active
类:
$(document).ready(function() {
$(".nav-tabs li").each(function () {
if (typeof localStorage.getItem("active") != "undefined" && $(this).text().trim() == localStorage.getItem("active"))
$(this).addClass("active");
});
$(".nav-tabs li").on("click", function() {
$(".nav-tabs li").removeClass("active");
$(this).addClass("active");
localStorage.setItem("active", $(this).text().trim());
});
});
片段
$(document).ready(function() {
$(".nav-tabs li").each(function() {
if (typeof localStorage.getItem("active") != "undefined" && $(this).text().trim() == localStorage.getItem("active"))
$(this).addClass("active");
});
$(".nav-tabs li").on("click", function() {
$(".nav-tabs li").removeClass("active");
$(this).addClass("active");
localStorage.setItem("active", $(this).text().trim());
});
});
.active {font-weight: bold;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav nav-tabs nav-justified">
<li><a href="#">Concept</a></li>
<li><a href="#">Code</a></li>
<li><a href="#">Read</a></li>
<li><a href="#">Action</a></li>
</ul>
注意: StackSnippets 不允许localStorage
. 请检查输出:JSBin。
推荐阅读
- python - 您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:AVX2 FMA
- authentication - 成功Siteminder SSO webagent身份验证后tomcat提示基本登录
- c++ - QT 无法定义对 Openssl 的引用
- php - 从mysql查询php中获取num行
- r - 使用 gganimate 导出 gif
- python - 无法使用 python 加载或加载解析 json 字符串
- domain-driven-design - CQRS(事件溯源)读取多个聚合
- go - 在实例生成期间修改结构字段
- excel - 如何在EXCEL中的每日数据中选择选定月份的最后一天
- java-8 - 如何在 Java8 中将 Current Date 更改为 MinguoDate?