2011-11-01 43 views
2

如何让这个函数永远持续运行。重复jQuery .each()函数无限次

$('.featuedbanner img').each(function(){ 
    $(this).delay(featlay).animate({opacity: 1, leaveTransforms:true}, {duration:2000, queue:true}); 
    featlay += 6000; 
    $(this).delay(featlay).animate({opacity: 0, leaveTransforms:true}, {duration:2000, queue:true}); 
}); 

那就是使这是一个无限循环

+0

我不认为你说的很清楚你想做什么...... – sth

+0

@sth就是让这个无限循环 –

+0

无限循环在这里不是正确的术语..你真正想要的是什么是再次无限调用自己的代码。 –

回答

3

你将不得不做一些这样的事,以达到以下

Jsfiddle Example1

而且

Jsfiddle Example2

+2

如果jsFiddle关闭或完全消失,最好在您的SO答案中发布实际代码。 – Blazemonger

+0

雅我同意......但我的答案仅仅是一个参考,因为没有HTML代码来帮助它 – Wazzzy

+3

我只为自己说话,如果我在答案中看不到解决方案,我不会赞成答案本身。 – Blazemonger

1
var loop = function(){ 
    var featlay = 0; 
    $('.featuedbanner img').each(function(){ 
      $(this).delay(featlay).animate({opacity: 1, leaveTransforms:true}, {duration:2000, queue:true}); 
      featlay += 6000; 
      $(this).delay(featlay).animate({opacity: 0, leaveTransforms:true}, {duration:2000, queue:true}); 
     }); 

    setTimeout(loop, 0); 
}; 

loop(); 
+0

良好,但接缝需要3倍的时间长度才能触发并再次循环。这是因为目前有三张图片。所以它由于某种原因将该数量乘以该技能lay变量 –

+0

您必须将'featlay'放入循环中,并在每个循环的开始处重置它。或者只是将常量传递给'delay'方法。现在你正在做'+ =' –

+0

请问下台选民可以解释一下吗? –