Ajax调用完成后执行函数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

在Ajax调用完成之前,我不希望执行printWithAjax()函数。

var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
         url: 'api.php',                        
         data: 'id1='+q+'',                                                         
         dataType: 'json',
         async:false,                    
         success: function(data)          
         {   
            id = data[0];              
            vname = data[1];
         }
      });

       printWithAjax(); 

 }//end of the for statement
}//end of ajax call function
提问于
用户回答回答于

你可以使用.ajaxStop().ajaxComplete()

.ajaxComplete() 在页面上完成每个AJAX请求后触发。

$( document ).ajaxComplete(function() {
  yourFunction();
});

.ajaxStop() 在页面上完成所有AJAX请求后触发。

$( document ).ajaxStop(function() {
  yourFunction();
});
用户回答回答于

试试下面的代码:

var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
     url: 'api.php',                        
     data: 'id1='+q+'',                                                         
     dataType: 'json',
     async:false,                    
     success: function(data)          
     {   
        id = data[0];              
        vname = data[1];
     },
    complete: function (data) {
      printWithAjax(); 
     }
    });

  }//end of the for statement
  }//end of ajax call function

扫码关注云+社区