Javascript шоу в цикле с задержкой - PullRequest
3 голосов
/ 19 июля 2010

Простой пример:

for (var i = 0; i < 10; ++i) {
  console.log(i); // <--- should be show with delay in 300ms 
}

Простое использование setTimeout, конечно, не работает ... Я полагаю, что следует использовать замыкания ...

Ответы [ 3 ]

6 голосов
/ 19 июля 2010

Это просто написать рекурсивную функцию:

function display(i)
{
  if (i == 10) return;    
  setTimeout(function(){ console.log(i); display(i+1); }, 300);
}
4 голосов
/ 19 июля 2010

Должен делать работу:

for (var i = 0; i < 10; ++i) {
  (function(i) {
     setTimeout(function(){console.log(i);}, i*300);
  })(i);
}
3 голосов
/ 19 июля 2010

Вы можете использовать setInterval, вот так:

var i = 0;
var id = setInterval(function(){
    if (i == 9) clearInterval(id);
    console.log(i);
    i++;
}, 300);

Пример здесь http://jsfiddle.net/MLWgG/2/

...