延迟addclass / remove类函数不起作用

我在做什么呢?

$(function() { $('ul li:nth-child(1)').addClass("go").delay(4500).removeClass("go"); $('ul li:nth-child(2)').addClass("go").delay(1500).removeClass("go"); $('ul li:nth-child(3)').addClass("go").delay(500).removeClass("go"); $('ul li:nth-child(4)').addClass("go").delay(4500).removeClass("go"); $('ul li:nth-child(5)').addClass("go").delay(1000).removeClass("go"); }); 

只需添加,您可以使用.queue

 $('ul li:nth-child(1)').addClass("go") .delay(4500) .queue(function() { $(this).removeClass("go"); $(this).dequeue(); }); 

.delay()仅用于处理动画。 您将不得不使用常规的setTimeouts来处理您正在做的事情:

 var li = $('ul li:nth-child(1)').addClass('go'); setTimeout(function () { li.removeClass('go'); }, 4500); 

为了使每个

  • 更愉快,你可以像这样重构你的代码:

     $(function () { var delays = [4500, 1500, 500, 4500, 1000]; $('ul li').addClass('go').each(function (i) { setTimeout(function (li) { li.removeClass('go'); }, delays[i], $(this)); }); });