Простой пример:
for (var i = 0; i < 10; ++i) { console.log(i); // <--- should be show with delay in 300ms }
Простое использование setTimeout, конечно, не работает ... Я полагаю, что следует использовать замыкания ...
Это просто написать рекурсивную функцию:
function display(i) { if (i == 10) return; setTimeout(function(){ console.log(i); display(i+1); }, 300); }
Должен делать работу:
for (var i = 0; i < 10; ++i) { (function(i) { setTimeout(function(){console.log(i);}, i*300); })(i); }
Вы можете использовать setInterval, вот так:
var i = 0; var id = setInterval(function(){ if (i == 9) clearInterval(id); console.log(i); i++; }, 300);
Пример здесь http://jsfiddle.net/MLWgG/2/