延迟循环问题

问题描述:

我有一个噩梦试图让一些报价循环延迟。我创建了以下代码:延迟循环问题

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'); 
} 

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

非常感谢

大卫

你可以再次调用该函数作为回调,像这样:

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); 

这样做是淡入报价,延迟5000毫秒,淡化出来,在.fadeOut()完成那么当,再次调用该函数来接/显示下一个报价。

+0

嗨尼克,非常感谢那个解决方案,它一直在推动着我的坚果。我已经向您的解决方案发布了一个小修复程序,因为您的解决方案正确无误,但在第二次运行时不会再获得另一个报价。下面的代码似乎现在虽然工作。 – Davemof 2010-09-08 19:31:15

+0

函数LoopQuotes(){ \t var size = $('。comment')。size(); \t rand = Math.floor(Math.random()* size + 1); ('',';');)()。。。。。。。。。。。。。。。。。。。。。。。。。。 } – Davemof 2010-09-08 19:31:46