选择 Ajax 个回调
Selectize Ajax Callbacks
我在页面上的 selectize 下拉列表是通过以下方式从 AJAX 调用中填充的。不起作用的是我需要在 callback()
方法调用之后立即 运行 一些额外的代码,但它永远不会继续到回调的其余部分。例如,成功回调中的以下内容不会 运行 识别的附加代码:
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()
方法调用后中止。
load
需要两个参数,query
和 callback
。
$('#ContactID').selectize({
....
load : function (query, callback) {
$.ajax({
....
success : function(res) {
callback(res.data);
doOtherThings(res);
}
});
}
});
您的代码不传递任何这些参数,因此很可能在调用 success()
时未定义 callback()
函数。
我建议放置断点并检查它。
我在页面上的 selectize 下拉列表是通过以下方式从 AJAX 调用中填充的。不起作用的是我需要在 callback()
方法调用之后立即 运行 一些额外的代码,但它永远不会继续到回调的其余部分。例如,成功回调中的以下内容不会 运行 识别的附加代码:
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()
方法调用后中止。
load
需要两个参数,query
和 callback
。
$('#ContactID').selectize({
....
load : function (query, callback) {
$.ajax({
....
success : function(res) {
callback(res.data);
doOtherThings(res);
}
});
}
});
您的代码不传递任何这些参数,因此很可能在调用 success()
时未定义 callback()
函数。
我建议放置断点并检查它。