[英]Execute code after loading content via ajax in foreach loop
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 */ });
但是我無法使它工作。
好吧……這不是現成的方法的目的,當然那是行不通的。 您需要使用$.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
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.