0

我需要在 JavaScript 中设置 for 循环的执行延迟。

这是我的代码:

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

将“alert('Hello')”代码添加到delayLoop函数后,我注意到setTimeout函数只在myFunction1()执行后才显示alert框。

如何使用 setTimeout 将通过项目集合的每个循环减慢到 1500 毫秒?

4

2 回答 2

1

也许这有帮助

function pause(ms) {
    ms += new Date().getTime();
    while (new Date() < ms){}
} 
于 2013-05-09T06:56:55.480 回答
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 秒执行一次。

于 2013-05-09T06:58:41.853 回答