在特定的ajax请求完成时做某事

时间:2015-01-05 14:49:49

标签: javascript php jquery ajax

我有很多ajax请求,我想在其中一个完成时完成一些代码,但是$。当工作不正常时,我怎么能正确地做到这一点?

getData();
$.when().done(function()
    //doing something here
);

function getData(){
    $.ajax({
        type: 'POST',
        url: '1.php',
        data:'',
        dataType: 'json',
        success:function(data_Object){

        }
    });
}

2 个答案:

答案 0 :(得分:3)

您需要将某些内容传递给$ .when(),这可能是您的ajax调用或延迟对象http://api.jquery.com/jquery.when/

尝试这样的事情:

$.when(getData(), getData2()).done(function(data1, data2){
    console.log("do stuff with", data1);
    console.log("do stuff with", data2);
);

function getData() {
    return $.ajax({
        type: 'POST',
        url: '1.php',
        data: '',
        dataType: 'json'
    });
}

function getData2() {
    return $.ajax({
        type: 'POST',
        url: '2.php',
        data: '',
        dataType: 'json'
    });
}

您还可以在成功方法中处理回调:

function getData2() {
    return $.ajax({
        type: 'POST',
        url: '2.php',
        data: '',
        dataType: 'json',
        success: function(data){
            console.log("its finished", data);
        }
    });
}

答案 1 :(得分:0)

如果你不想,你不必使用。

getData(doSomething);

function doSomething(data){
  //do something with data object
}


function getData(callback)
{
    $.ajax
    ({
    type: 'POST',
    url: '1.php',
    data:'',
    dataType: 'json',
    success:function(data_Object)
        {
          callback(data_Object)
        }
     });
}