0

text配列に従ってtime数秒で配列を印刷するにはどうすればよいですか?
たとえば、「tag1」は 2 秒で、「tag2」は 4 秒で、というように出力したいと考えています。

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);
}
4

2 に答える 2

2

time[i]秒間隔ごとにテキストを変更します。それを行うには、クロージャーを使用します。

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

デモ: http://jsfiddle.net/utG23/1/

于 2013-03-12T12:29:03.657 に答える
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秒後にタグを非表示にし、新しいタグが表示されると再び表示します...

于 2013-03-12T14:11:10.540 に答える