在jquery中添加循环执行的延迟

时间:2014-09-19 06:36:05

标签: jquery loops delay

我试图在循环中执行几行,延迟10秒。添加以下代码,

            $(xmlResponse).find("row").each(function()
            {
                setInterval(
                    //some set of code here
                ,10000);
            });

我不知道我做得对,你们中的任何一个人能指导我吗?

此致 阿斯温

2 个答案:

答案 0 :(得分:0)

你可能想要setTimeout()因为它只触发一次:

$(xmlResponse).find("row").each(function() {
    setTimeout( //some set of code here ,10000);
});

答案 1 :(得分:0)

现在很清楚OP希望每10秒在.each()循环中执行一次操作,有几种方法可以做到这一点。一种方法是堆积一大堆setTimeout()个调用来为整个循环安排未来的工作。我不愿意这样做,因为它很难在未来的工作中做出逻辑决定。相反,我倾向于改变你迭代到这种常用设计模式的方式:

var rows = $(xmlResponse).find("row");
var cntr = 0;
function nextRow() {
    if (cntr < rows.length) {
        var currentRow = rows.eq(cntr);

        // do your operation on currentRow here

        ++cntr;
        // schedule the next row for 10 seconds from now
        setTimeout(nextRow, 10 * 1000);
    }
}
// start the first one
nextRow();