2015-10-14 83 views
0

我試了很多方法來使這段代碼運行,但我不知道現在該做什麼?jquery循環圖像不起作用

我的邏輯錯了嗎?

$(document).ready(function(){  
    var backgrounds = [ 'url(assets/img/principal.jpg) no-repeat center left','url(assets/img/agencia.jpg)','url(assets/img/neu-profile.jpg)','url(assets/img/food.jpg)']; 
    for (i=0; i< backgrounds.length; i++){ 
    setTimeout(function() {$("#inicio").css({"background": backgrounds[i]});}, 5000); 
    }  
}); 
+1

你將所有超時設置爲同時觸發,在每個超時時間內使用相同的「i」閉包,並且您在全局聲明「i」。代碼的預期行爲是什麼?循環播放背景? – Stryner

回答

0

是的,你的邏輯是錯誤的,因爲@Stryner指出的那樣,你是射擊所有超時的同時,試試這個:

\t \t $(document).ready(function(){  
 
\t \t \t var backgrounds = [ 'url(assets/img/principal.jpg) no-repeat center left','url(assets/img/agencia.jpg)','url(assets/img/neu-profile.jpg)','url(assets/img/food.jpg)']; 
 
\t \t \t var i = 0; 
 
\t \t \t setInterval(function() { 
 
\t \t \t \t $("#inicio").css({"background": backgrounds[i]}); 
 
\t \t \t \t i = (i + 1) % backgrounds.length; 
 
\t \t \t }, 5000); 
 
\t \t });