jQuery在第一次Ajax回调后运行另一个Ajax

时间:2014-04-09 15:18:19

标签: javascript php jquery ajax dom

我有以下代码,它通过附加的ajax内容加载:

    $.get('http://mydomain.com/ajax1.php/', function(data){
        var data_one = $(data).find('#ajax_editor_suggestion_container');
        $('.ajax_editor_selection_container').append(data_one);
    }); 

    $.get('http://mydomain.com/ajax2.php/', function(data){
        var data_one = $(data).find('#ajax_editor_suggestion_container');
        $('.ajax_editor_selection_container').append(data_one);
    }); 

我的目标是首先附加ajax1.php的内容,然后附加ajax2.php的内容。但是有时ajax2.php的内容会在ajax1.php的内容之前加载并混淆附加的顺序。

所以我的问题是,如何确保ajax2.php的内容始终附加在ajax1.php的内容之后?

我使用$ .get()因为它对我来说更容易,但我对任何其他jQuery ajax方法都开放。

由于

1 个答案:

答案 0 :(得分:1)

我会使用$.when

$.when(
    $.get('http://mydomain.com/ajax1.php/'), 
    $.get('http://mydomain.com/ajax2.php/')
).done(function (response1, response2) {
    var data_one = $(response1).find('#ajax_editor_suggestion_container');
    var data_two = $(response2).find('#ajax_editor_suggestion_container');

    $('.ajax_editor_selection_container').append(data_one).append(data_two);
});

这将同时运行ajax请求,但在两者完成之前不会调用回调。