我需要等待一定的Ajax請求才去完成。由於這個請求是由不同的錨點觸發的,因此我將它封裝在一個函數中。 第一個ajax函數完成後會發生什麼,是第二個ajax請求。
起初,我試圖等待第一使用$.ajaxComplete()
跑成無端循環,因爲此後進行的第二Ajax請求來完成。
我發現了一些樣品有關使用$.when
但他們沒有表明它是否可以使用方法,而不是deferreds。
這是我想做什麼:
$.when(functionFirstAjaxCall(data)).then(function() {
// after first ajax request has finished, do the following:
$.ajax({
//...
});
});
是否functionFirstAjaxCall()
需要有一定的回報值,或者我如何能得到這個人在工作?順便說一句,該解決方案不需要使用$.when
。
更新:我通過創建自定義事件來解決問題,正如Vandesh所建議的。
function first() {
$.ajax({
// ...
success: function (d) {
$.event.trigger({
type: "finished",
data: d
});
}
});
}
$(document).on('finished', second());
無論如何,會有一個簡單的解決方案,使用$.when
?
用第二個ajax創建一個函數並在'success:function(){...}或者'done:'中運行它,從第一個ajax開始? – Spokey
'success'從JQuery 1.8開始棄用 - http://api.jquery.com/jQuery.ajax/ – Vandesh