-2

我有这个 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 循环准备好时。然后我想启动另一个脚本/函数。我怎样才能做到这一点?当我打字时,功能。那是行不通的。

4

2 回答 2

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()

于 2013-05-30T12:50:12.533 回答
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
}
于 2013-05-30T12:54:09.297 回答