我正在尝试在点击时将课程( .sidebarActive
)添加到 .sidebarButton
,然后从所有其他按钮中移除该课程相同( .sidebarButton
)类。将活动类添加到 .sidebarButton
的代码部分可以正常工作,但是当单击其他按钮时,它不会删除活动类。有什么建议。?我的代码逻辑错了吗?谢谢你的帮助。
$(".sidebarButton").click(function() {
hideActive();
$(this).addClass('sidebarActive');
});
function hideActive() {
var sidebars = document.querySelectorAll(".sidebarButton");
for (var i = 0, l = sidebars.length; i < l; i++) {
sidebars[i].removeClass(".sidebarActive");
}
}
答案 0 :(得分:5)
您只需点击每个.sidebarActive
删除.sidebarButton
,然后在点击的内容中添加$(".sidebarButton").click(function() {
$(".sidebarButton").removeClass('sidebarActive');
$(this).addClass('sidebarActive');
});
:
$(".sidebarButton").click(function() {
$(".sidebarButton").removeClass('sidebarActive');
$(this).addClass('sidebarActive');
});
.sidebarButton{
cursor: pointer;
}
.sidebarActive{
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="sidebarButton">Test 1</p>
<p class="sidebarButton">Test 2</p>
<p class="sidebarButton">Test 3</p>
<p class="sidebarButton">Test 4</p>
{{1}}
答案 1 :(得分:1)
在hideActive函数中sidebars[i].removeClass(".sidebarActive");
不起作用,因为sidebars[i]
不是Jquery对象。
将其更改为:
sidebars[i].classList.remove("sidebarActive");
或者做Zenoo为完整的Jquery解决方案发布的内容