选择 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 需要两个参数,querycallback

 $('#ContactID').selectize({
      ....
      load : function (query, callback) {
         $.ajax({
             ....
             success : function(res) {
                   callback(res.data);
                   doOtherThings(res);
             }
         });
      }
 });

您的代码不传递任何这些参数,因此很可能在调用 success() 时未定义 callback() 函数。 我建议放置断点并检查它。