我在页面上的选择性下拉列表通过以下方式从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()
方法调用之后成功回调中止。
答案 0 :(得分:0)
load
需要两个参数,query
和callback
。
$('#ContactID').selectize({
....
load : function (query, callback) {
$.ajax({
....
success : function(res) {
callback(res.data);
doOtherThings(res);
}
});
}
});
您的代码未传递任何这些参数,因此很可能在调用success()
时,callback()
函数未定义。
我建议把断点检查一下。