1
我知道有几种方法可以在ajax调用完成之前执行代码,并且我知道使用when() - method是推荐的做法 this。 (http://api.jquery.com/jQuery.when/)
我有一个函数loadFilter()
它返回一个延迟的对象是这样的:
function loadFilter() {
...code...
return $.ajax({
type: 'POST',
url: loadFile,
data: {object: obj},
dataType: 'html'
}).done(function(data) {
$(targetDiv).html(data);
initDrag();
$("body").removeClass("wait");
})
.fail(function(ts) {
alert(ts.responseText);
});
}
而且从getpage()
不同的值调用loadFilter()
功能进行二次另一个函数调用:
function getpage() {
...code...
loadFilter(subcatId, "getnavigationpages", paginationDiv, doSearch);
loadFilter(subcatId, "getproducts", targetDiv, doSearch);
//When ajax-calls are done in function loadFilter.
$.when(loadFilter()).done(function(rsdata1) {
...code to execute when both loadFilter-functions above
});
}
我怎么知道什么时候执行$ .when()?我想执行代码时都loadFilters()
被称为,但我认为!? $ .when()可以在第一次loadFilter()被调用时执行 或者第二次?
谢谢你的快速和良好的答案。现在我真的了解如何使用then()以及:-)当我能够(还剩8分钟)时,我会接受这个答案 – bestprogrammerintheworld
@TJCrowder:也许你的意思是“总是”而不是“然后”。 “总是”是无论延期状态如何都会被触发的“事件”。 'then'用于链接延迟,它有3个参数:'doneCallbacks,failCallbacks,progressCallbacks'。 – LeGEC
@LeGEC:谢谢!固定。 –