我有以下HTML代码
<ul class='selectul'>
<li class='active'><a href='?sortby=views'>by Popularity.</a></li>
<li><a href='?sortby=recency'>by Recency.</a></li>
<li><a href='?sortby=alphabet'>Alphabetically.</a></li>
</ul>
点击任何<li>
元素后,我想向其添加class='active'
。然后,它的兄弟姐妹都不允许这个班级。我尝试使用以下jQuery代码
(function(){
$('.selectul li').on('click',function(){
$(this).addClass('active');
$(this).siblings().removeClass('active');
});
}())
但它似乎没有做任何事情。我刚刚开始使用jQuery,所以如果这个问题非常基本,我会道歉。
答案 0 :(得分:5)
脚本没问题。问题出在其他地方。单击该链接后,文档将重新加载,您不会注意到类的更改。
尝试:
(function(){
$('.selectul li').on('click',function(){
$(this).addClass('active');
$(this).siblings().removeClass('active');
return false;
});
}());
return false 会中断Click-Event并阻止重新加载文档。
答案 1 :(得分:1)
您的代码看起来不错,我已经验证它正在运行@ jsfiddle.net
$(document).ready(function(){
$('.selectul li').on('click',function(){
$(this).addClass('active');
$(this).siblings().removeClass('active');
});
});
答案 2 :(得分:0)
尝试等待文档就绪事件,因为元素可能尚未在页面上。
$(function(){
$('.selectul li').on('click',function(){
$(this).addClass('active');
$(this).siblings().removeClass('active');
});
});
答案 3 :(得分:0)
我认为你应该像这样编码
$(document).ready(function(){
$('.selectul li').on('click',function(){
$(this).addClass('active');
$(this).siblings().removeClass('active');
});
});