2013-05-30 38 views
3

我有一個急需幫助。 :)隨着時間的推移在jquery循環文本

我需要做一個jquery腳本,其中文本顯示在div中,並在確定的時間量內進行更改。 因此,例如每隔7秒div內容發生變化(我必須插入淡入淡出效果)。 所以我寫這個代碼,但它不工作

var caption = [ 
"Tip 01", 
"Tip 02", 
"Tip 03", 
"Tip 04", 
"Tip 05", 
]; 

setInterval(function() { 
    jQuery.each(caption, function() { 
     $("#message-box").html(caption[i]); 
    }); 
    }, 7 * 1000); 

在那裏我錯了? 所有這些,因爲超大插件不支持圖像上的標題,所以我必須以這種方式手動執行此操作。

message-box是數組項將被shownd的div。

在此先感謝您的幫助

回答

1

使用它們之間進行切換這樣

var i = 0; 
setInterval(function() {  
$("#message-box").html(caption[i]); 
i++; 
if (i == caption.length){i=0;} 
}, 7 * 1000); 

See Demo

+0

爲什麼「i == caption.length」?爲什麼不是模數? var l = caption.length;你可以像標題一樣訪問它 –

+0

爲什麼使用模數?你給出的條件檢查有什麼區別? – Dineshkani

+0

它的工作原理!謝謝,但爲什麼它在7秒後開始?當網站加載時什麼也不顯示直到第7秒 – Psygno

0

嘗試像這樣

var caption = ["Tip 01", "Tip 02", "Tip 03", "Tip 04", "Tip 05"]; 
var l = caption.length; // array length (here 5) 
var i = 0; // set to 0 (array index starts at 0) 

setInterval(function() { 
    if (i > l) i = 0; 
    // when i is bigger than the total values in the array set it back to 0 
    $("#message-box").html(caption[i]); // insert text from array 
    i++; // add + 1 to i 
}, 7000); 

$.each()將在數組中直接顯示的最後一個值,而不是

+0

謝謝,但它不工作,即使在jfiddle – Psygno

+0

@ user1071936是的數組有一個額外的','導致代碼打破。我現在修好了 – Spokey

相關問題