2013-03-12 66 views
0

如何根據time數組在幾秒鐘內打印text數組?
比如我想要的「標籤1」是在2秒,「標籤2」打印在4秒,等等......每time[i]秒期後關聯文本和時間數組,打印和隱藏數值

http://jsfiddle.net/utG23/

var time = [2,4,6,8]; 
var text = ['tag1', 'tag2', 'tag3', 'tag4']; 

var e = document.getElementById("teste"); 

for (var i=0;i<time.length;i++) { 

    e.innerHTML = text[i]; 
    setTimeout(function(){e.style.display = "none";}, 2000); 
} 

回答

2

更改文本。爲了它,使用封閉:

(function(i) { 
    setTimeout(function() { 
     e.innerHTML = text[i]; 
    }, 1000 * time[i]); 
})(i); 

DEMO:http://jsfiddle.net/utG23/1/

+0

謝謝!如何在1秒後隱藏文字[i]?因爲我只想顯示內容2秒,並且如果文字= 10之間的時間,我不希望看到該標記10秒... – zppinto 2013-03-12 12:42:32

0

是完美的......

(function(i) { 
    setTimeout(function() { 
     e.innerHTML = text[i]; 
     setTimeout(function(){e.style.display = "none";},3000); 
     e.style.display = "block"; 
    }, 1000 * time[i]); 
})(i); 

它隱藏了標籤後3秒,然後再次顯示它,當一個新的出現...