2013-05-09 2 views
0

Мне нужно установить задержку в выполнении цикла for в JavaScript.Установить задержку в выполнении цикла в JavaScript

Вот мой код:

function myFunction1() { 

     var list = document.getElementById('SomeList'); 
     var items = list.getElementsByTagName('li'); 

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

      setTimeout(delayLoop, 1500); 
     } 
    } 
function delayLoop() { 
     alert('Hello'); 
    } 

После добавления «предупреждения („Hello“)» код для функции delayLoop, я заметил, что функция SetTimeout отображается только окно предупреждения после выполнения myFunction1 ().

Как использовать setTimeout для замедления каждого цикла через набор элементов до 1500 мс?

+0

см. "Sleep() в JavaScript" http://www.phpied.com/sleep-in-javascript/ – IvanH

ответ

0

Вы, возможно, придется использовать функцию обратного вызова здесь

var list = document.getElementById('SomeList'); 
var items = list.getElementsByTagName('li'); 
var i = 0; 

var myFunction1 = function() { 
    if (i < items.length) { 
     // Do some code with items[i] 
     i++; 
     setTimeout(myFunction1, 1500); 
    } else { 
     // No more elements 
     return; 
    } 
} 

Таким образом, ваш myFunction1 исполним через каждые 1,5 секунды.

1

Может быть, это помогает

function pause(ms) { 
    ms += new Date().getTime(); 
    while (new Date() < ms){} 
} 
Смежные вопросы