2011-11-01 58 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

請問下臺選民可以解釋一下嗎? –