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:没有太多的爱这个问题 - 任何进一步的想法?