我有一个包含li元素的ul列表。当用户单击其中一个li元素时,该元素应添加一个类。
这很容易设置,但是当其他li元素被点击时,我希望"active"类从非活动的li中删除。
我已经在jsfiddle上演示了问题: http://jsfiddle.net/tGW3D/
任何时候都应该有一个红色的li元素。如果您先点击第二个,然后再点击第一个,则只有第一个应为红色。
我有一个包含li元素的ul列表。当用户单击其中一个li元素时,该元素应添加一个类。
这很容易设置,但是当其他li元素被点击时,我希望"active"类从非活动的li中删除。
我已经在jsfiddle上演示了问题: http://jsfiddle.net/tGW3D/
任何时候都应该有一个红色的li元素。如果您先点击第二个,然后再点击第一个,则只有第一个应为红色。
$('body').on('click', 'li', function() {
$('li.active').removeClass('active');
$(this).addClass('active');
});
siblings
和 removeClass
方法。$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
首先删除所有 .active
的实例,然后再添加它:
$('ul li').on('click', function() {
$('ul li.active').removeClass('active');
$(this).addClass('active');
});
$('li').click(function() {
$(this).siblings().removeClass('active');
$(this).addClass('active');
});
Check: http://jsfiddle.net/tGW3D/2/
$('li').click(function() {
$(this).addClass('active'); // add the class to the element that's clicked.
$(this).siblings().removeClass('active'); // remove the class from siblings.
});
如果你了解jQuery,你可以像下面这样链接它。
$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
以上代码将为您解决问题。尝试此演示
$('document').on('click', 'ul li', function() {
$(this).addClass('active').siblings().removeClass("active") ;
});
$(document).on('click','ul li',function() {
$(this).addClass('active').siblings().removeClass('active');
});
这段 jQuery 代码可能会有所帮助。 别忘了添加Jquery CDN。
<script>
$(function() {
$('li').click(function() {
$("li.active").removeClass("active");
$(this).addClass('active');
});
});
</script>
你可以通过以下代码更改CSS类:
$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
链接到 jsfiddle