我为什么以下逻辑没有按预期工作而感到茫然。我想在点击时删除所有活动的类,然后将该类添加回仅具有与该URL对应的href的li。
var str=location.href.toLowerCase();
$(".navlinks li a").each(function() {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$("li.active").removeClass("active");
$(this).parent().addClass("active");
}
});
<ul class="navlinks">
<i class="fa fa-bars"></i>
<li><a href="/give">Give</a></li>
<li><a href="/contact">Contact</a></li>
<li><a href="/volunteer">Volunteer</a></li>
<li><a href="/events">Calendar</a></li>
<li><a href="/services">Services</a></li>
<li><a href="/about">About</a></li>
<li><a href="/">Home</a></li>
</ul>
目前,点击时每个li都会附加一个空白类。
答案 0 :(得分:0)
把它放在if语句中:
$("li.active").removeAttribute("class");
$(this).parent().addClass("active");
对我而言,它有效。
编辑:把它放在外面:
Var isexecutedonce = false;
在foreach循环中写道:
If(!isexecutedonce){
$("li.active").removeAttribute("class");
Isexecutedonce = true;
}
如果出现以下情况:
$(this).parent().addClass("active");