2
我在頁面上選擇的下拉列表從AJAX調用通過以下方式填充。有什麼不起作用的是我需要在callback()
方法調用之後運行一些附加代碼,但它永遠不會持續到回調的其餘部分。舉例來說,在成功回調以下不運行所確定的附加代碼:選擇Ajax回調
var $ddl = $("#ContactID");
var control = $ddl[0].selectize;
control.load(function() {
$.ajax({
url: "validURL",
type: "post",
dataType: "json",
data: {
id: recordID
},
error: function() {
alert("Error retrieving data");
callback();
},
success: function (result) {
callback(result.data);
//Does not get called below
loadAdditionalInformation(recordID);
}
});
});
但是,如果我這樣做,它的工作原理:
success: function (result) {
window.setTimeout(function() {
callback(result.data);
}, 0);
loadAdditionalInformation(recordID);
}
我需要調用的方法點列表被加載,所以我不確定我想繼續,因此爲什麼成功回調在callback()
方法調用後中止。
它沒有任何意義。超時0做內部函數異步,所以只有解釋是回調函數期間錯誤/無限循環..這是愚蠢的問題,但你檢查控制檯? – bigless
@ bigless這是一個非常好的問題,Zamrony是對的,我忘記了一個參數,所以我處理的是未定義的,但由於某種原因被吞噬了,不知道爲什麼。同樣,我並不是在建議'setTimeout'作爲答案,但是我注意到並嘗試了一些東西...... –