我想每隔3秒更改一次班级名称。但它不起作用。我怎么能这样做?
$(document).ready(function() {
function moveClass(){
var x = $('.liveEvents');
x.removeClass('liveEvents');
x.addClass('liveEventsActive');
x.removeClass('liveEventsActive');
x.addClass('liveEvents');
}
setInterval(moveClass, 3000);
return false;
});
答案 0 :(得分:9)
您可以在一行中执行此操作。使用toggleClass:
setInterval(function(){$('.liveEvents').toggleClass('liveEventsActive')}, 3000);
如果您正确使用CSS,则无需删除liveEvents
类。只需让liveEventsActive
类覆盖您需要的内容。
答案 1 :(得分:4)
每次运行该函数时,您都会执行四项操作,这实际上会将您带回到启动状态:
liveEvents
liveEventsActive
liveEventsActive
liveEvents
您想要打开/关闭这两个类,请查看.toggleClass()
函数。您还需要两个选择器,一个用于选择具有liveEvents
类的元素,另一个用于选择具有liveEventsActive
类的元素。
答案 2 :(得分:4)
使用您的代码,整个功能每3秒执行一次。添加/删除类在一个块中发生,您显然无法看到差异。
jQuery有一个.toggleClass()方法,可以相应地添加/删除指定的类:
function moveClass() {
$('.liveEvents')
.toggleClass('liveEventsActive');
}
<强> DEMO 强>
答案 3 :(得分:1)
$(document).ready(function() {
function moveClass(){
$( ".liveEvents" ).switchClass( "liveEvents", "liveEventsActive", 1000);
$( ".liveEventsActive" ).switchClass( "liveEventsActive", "liveEvents", 1000 );
}
setInterval(moveClass, 3000);
return false;
});
这将使用转换来交换您的类,希望这会有所帮助