执行多个ajax请求后调用一个函数

时间:2017-08-22 05:31:32

标签: javascript jquery ajax

所以在我的程序中,我有两个选项卡,我正在使用表单执行post ajax请求。 在加载ajax时会出现两种不同的json 代码如下:

$('#myForm').submit(function () {


$.ajax({ // create an AJAX call...
        data : $(this).serialize(), // get formdata
        dataType : "json",
        //async : false,
        //timeout : 55000,
        type : $(this).attr('method'), // GET or
        // POST
        url : url.A, // the file to call
        success : function ( json ) {
            // on success..
            $('.ajaxloader').css("visibility", "hidden");
            Graph = json;
            draw(Graph);
        }
    });


 $.ajax({ // create an AJAX call...
            data : $(this).serialize(), // get formdata
            dataType : "json",
            type : $(this).attr('method'), //POST
            url : url.B, // the file to call
            success : function ( json ) {
                // on success..
                table= json;
                plot(table);
            }
        });
}

现在,在josn到达时,我首先显示表格,查看我的其他标签,我正在以这种方式写一个onclick事件..

$(init);
    function init () {

            $('body').on('click', 'a.all',function(){
                 plot(table);
            }) 
             .on('click', 'a.domain',function(){
             draw(Graph);
            });
     }

现在我的问题是如果我点击域,json仍然没有加载因此抛出错误, 我该如何解决这个问题..

到目前为止,我尝试async:false (它工作正常,但显示已弃用的警告) AjaxStop,第一次运行良好,然后切换标签时,它只显示没有响应 我也试过,但由于我是java脚本的新手,我根本不理解其用法

1 个答案:

答案 0 :(得分:1)

您可以尝试使用像ajaxComplete()这样的Ajax全局事件。

var ajaxCounter = 0;

$(document).ajaxComplete(function(){
  ajaxCounter++;

  if(ajaxCounter == 2){
    $(init);
  }
});