jquery addClass和removeClass with setInterval
我想每隔3秒更改一次class级名称。 不行不通。 我怎样才能做到这一点?
$(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; });
您可以在一行中执行此操作。 使用toggleClass :
setInterval(function(){$('.liveEvents').toggleClass('liveEventsActive')}, 3000);
如果正确执行CSS,则无需删除liveEvents
类。 只需让liveEventsActive
类覆盖您需要的内容即可。
每次函数运行时你都会做四件事,这实际上会让你回到你的开始状态:
- 删除类
liveEvents
- 添加class
liveEventsActive
- 删除class
liveEventsActive
- 添加类
liveEvents
您想要打开/关闭这两个类,所以看看.toggleClass()
函数。 您还需要两个选择器,一个用于选择具有liveEvents
类的元素,另一个用于选择具有liveEvents
类的元素。
使用您的代码,整个function每3秒执行一次。 添加/删除类在一个块中发生,您显然无法看到差异。
jQuery有一个.toggleClass()方法,它将相应地添加/删除指定的类:
function moveClass() { $('.liveEvents') .toggleClass('liveEventsActive'); }
DEMO
$(document).ready(function() { function moveClass(){ $( ".liveEvents" ).switchClass( "liveEvents", "liveEventsActive", 1000); $( ".liveEventsActive" ).switchClass( "liveEventsActive", "liveEvents", 1000 ); } setInterval(moveClass, 3000); return false; });
这将使用转换交换您的类,希望这将有所帮助