延迟循环的问题

时间:2010-09-08 17:02:55

标签: jquery loops

我正在做一个噩梦,试图让一些报价延迟循环。我创建了以下代码:

function loopquotes(){
 var items = $('.comment').size();
 var randomNum = Math.floor(Math.random()*items+1);
 $(".comment:nth-child("+randomNum+")").fadeIn('slow').delay(5000);
 $(".comment:nth-child("+randomNum+")").fadeOut('medium');
}

这种延迟很好地消失了。但是,循环保持循环而不使用延迟,我最终在页面上加载了大量引号。任何人都可以帮我正确地循环这个,这样只有在旧的报价淡出之后才会加载新报价。

非常感谢

大卫

1 个答案:

答案 0 :(得分:2)

你可以再次调用该函数作为回调,如下所示:

function LoopQuotes(){
  var comments = $('.comment'),
      rand = Math.floor(Math.random()*comments.length+1);
  comments.eq(rand).fadeIn('slow').delay(5000).fadeOut('medium', LoopQuotes);
}

然后在页面加载时调用一次,例如通过document.ready调用,如下所示:

$(LoopQuotes);

它的作用是淡化引号,延迟5000ms,淡出,然后当.fadeOut()完成时,再次调用该函数来选择/显示下一个引用。