for循环准备就绪时运行脚本

时间:2013-05-30 12:45:35

标签: javascript jquery loops for-loop

我有这个JavaScript for循环:

for (var i = 0; i < arr.length; i++) {
    $.get(arr[i]).done(function (html) {
        $(".main").append($(html).find(".section"));
        $('.section:not(:first) .blog-items-list').remove();
    });
}

当for循环准备就绪时。然后我想要启动另一个脚本/功能。我怎样才能做到这一点?当我打字,功能。那不行。

2 个答案:

答案 0 :(得分:4)

var d = [];
for (var i = 0; i < arr.length; i++) {
    d.push($.get(arr[i]).done(function (html) {
        $(".main").append($(html).find(".section"));
        $('.section:not(:first) .blog-items-list').remove();
    }));
}

$.when.apply($, d).then(function() {
    // all get requests have finished
});

$.when()是一个jQuery函数,等待所有传递的延迟都被解析。一旦它不接受延迟数组而是接受多个参数 - 我们使用.apply()

答案 1 :(得分:1)

var count = arr.length;
for (var i = 0; i < arr.length; i++) {
    $.get(arr[i]).done(function (html) {
        $(".main").append($(html).find(".section"));
        $('.section:not(:first) .blog-items-list').remove();
        if(--count === 0)
            next();
    });
}

function next(){
    // after all done completed
}