1
我目前有一些JQuery代碼,我試圖確保只有在第一個塊中的AJAX調用完成後才執行一個代碼塊。然而,我遇到了一些問題 - 我試圖使用JQuery Deferred方法來執行此操作(下面的代碼),但第一個或第二個代碼塊都沒有運行,所以我假設我處於錯誤的軌道上。Jquery - 在AJAX調用完成後確保代碼塊執行?
我是新來的延期方法,所以我希望有人能指出我在正確的方向,或指出另一個(也許更好)的方式做到這一點。
function makeChains(){
$('.chained_to_vehicle_make_selector').remoteChainedTo('.chained_parent_vehicle_make_selector', '/models.json');
$('.chained_to_vehicle_model_selector').remoteChainedTo('.chained_parent_vehicle_model_selector', '/trims.json');
$('.chained_to_vehicle_trim_selector').remoteChainedTo('.chained_parent_vehicle_trim_selector', '/model_years.json');
}
var chainCall = $.Deferred(function() {
makeChains();
});
chainCall.done(function() {
$(".chzn-select").chosen();
$(".chained_parent_vehicle_make_selector").chosen().change(function() {$(".chained_to_vehicle_make_selector").trigger("liszt:updated"); });
$(".chained_parent_vehicle_model_selector").chosen().change(function() {$(".chained_to_vehicle_model_selector").trigger("liszt:updated"); });
$(".chained_parent_vehicle_trim_selector").chosen().change(function() {$(".chained_to_vehicle_trim_selector").trigger("liszt:updated"); });
$(".chained_child").chosen();
});
我也嘗試添加chainCall.resolve();
到了最後,但無濟於事。
任何人都可以協助嗎?
編輯:我看了一下這裏的解決方案:Waiting for jQuery AJAX response(s)這似乎可以工作,但我認爲問題可能是remoteChainedTo
似乎沒有內置回調?我是否需要修改代碼來添加回調才能工作,或者JQuery能夠幫助我嗎? remoteChainedTo插件使用getJSON
從網址中提取數據。
編輯2:沒有太多的愛這個問題 - 任何進一步的想法?