boot_sections = ["123625","113231","11232","113216", ..... ];
for (var k in boot_sections) {
$.get('/load?sectionId=' + boot_sections[k], function(data) {
$('#sections').append(data);
});
}
这是我加载东西的地方。
我需要添加datepicker,lazyload和图片预览,但我需要等到所有请求的加载完成。
如何检查所有请求是否已完成?
我试过了:
$('#sections:last-child').ready(function() { /* apply stuff here */ });
但我无法让它发挥作用。
答案 0 :(得分:3)
嗯......那不是现成的方法,当然它不起作用。您需要使用$.when()
var requestArray = [];
for (var k in boot_sections) {
requestArray.push($.get('/load?sectionId=' + boot_sections[k], function(data) {
$('#sections').append(data);
}));
}
$.when.apply($,requestArray).done(function(){
// do stuff
})
此外,由于您正在使用数组,因此不应使用for-in循环。 jQuery有一个方法,在给定数组的情况下使这个代码更简单(也适用于对象)
var requestArray = $.map(boot_sections,function(id) {
return $.get('/load?sectionId=' + id, function(data) {
$('#sections').append(data);
});
}
$.when.apply($,requestArray).done(function(){
// do stuff
})