带有setInterval的jquery addClass和removeClass

带有setInterval的jquery addClass和removeClass,jquery,ajax,setinterval,addclass,removeclass,Jquery,Ajax,Setinterval,Addclass,Removeclass,我想每3秒钟更改一次类名。但是它不起作用。我该怎么做 $(document).ready(function() { function moveClass(){ var x = $('.liveEvents'); x.removeClass('liveEvents'); x.addClass('liveEventsActive'); x.removeClass('liveEventsAc

我想每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;
    });

每次函数运行时,您都要做四件事,这基本上会使您回到启动状态:

  • 删除类
    liveEvents
  • 添加类
    liveEventsActive
  • 删除类
    liveEventsActive
  • 添加类
    liveEvents

您希望打开/关闭这两个类,因此请查看函数。您还需要两个选择器,一个用于使用
liveEvents
类选择元素,另一个用于使用
liveEventsActive
类选择元素。使用:


如果您正确地执行CSS,则不需要删除
liveEvents
类。只需使
liveEventsActive
类覆盖您需要的内容。

使用您的代码,整个函数每3秒执行一次。添加/删除类发生在一个块中,您显然看不到区别

jQuery有一个方法可以相应地添加/删除指定的类:

function moveClass() {
    $('.liveEvents')
        .toggleClass('liveEventsActive');
}


这将使用转换来交换您的类,希望这将有所帮助

我认为这将切换LiveEventsActivity类,而不是liveEvents,我错了吗?您是正确的,但是在“LiveEventsActivity”类中使用正确的CSS声明,您不需要这样做。
function moveClass() {
    $('.liveEvents')
        .toggleClass('liveEventsActive');
}
$(document).ready(function() {
    function moveClass(){
        $( ".liveEvents" ).switchClass( "liveEvents", "liveEventsActive", 1000);
        $( ".liveEventsActive" ).switchClass( "liveEventsActive", "liveEvents", 1000 );
   }

    setInterval(moveClass, 3000); 
    return false;
});