【发布时间】:2018-12-06 10:35:05
【问题描述】:
以下是我的代码-
$("li span").click(function() {
$("li span").each(function() {
$(this).css("background-color", "transparent");
});
$(this).css("background-color", "#ff3300");
});
.highlight {
background: green;
}
span {
display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<div class="left-menu-inner scroll-pane">
<ul class="left-menu-list left-menu-list-root list-unstyled">
<li class="left-menu-list-active">
<div class="left-menu-link">
<a href="dashboard">
<i class="left-menu-link-icon icmn-home2"><!-- --></i>
<span class="menu-top-hidden">Dashboard</span>
</a>
</li>
</ul>
</div>
另外,我尝试了另一个代码如下-
<script>
// Add active class to the current button (highlight it)
var header = document.getElementById("myDIV");
var btns = header.getElementsByClassName("btn");
for (var i = 0; i < btns.length; i++) {
btns[i].addEventListener("click", function() {
var current = document.getElementsByClassName("active");
current[0].className = current[0].className.replace(" active", "");
this.className += " active";
});
}
</script>
但是这两个代码都只是在鼠标悬停时突出显示标签,而不是在点击时保持突出显示。
【问题讨论】:
-
感谢您的解决方案,我试过了,但它仍然不适合我。请问还有其他解决办法吗?
-
您能否详细说明“仍然无法正常工作”?怎么了?因为此代码正在运行,它以红色背景突出显示,然后重定向到另一个页面。此外,它没有像你说的那样在鼠标悬停时突出显示。
-
由于您没有放置 event.preventDefault() 页面将在单击按钮时重新加载,可能会再次删除所有按钮的“活动”类,因为浏览器不会保持那样的状态跨度>
标签: javascript jquery html css