sta*_*at8 37 javascript ajax jquery json
我是Ajax的新手,我在尝试使用Ajax时使用for循环.在Ajax调用之后,我正在运行一个使用Ajax调用中创建的变量的函数.该功能仅执行两次.我认为Ajax调用可能没有足够的时间在循环重新开始之前进行调用.有没有办法在运行函数printWithAjax()之前确认Ajax调用?我不想在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
Run Code Online (Sandbox Code Playgroud)
Nav*_*ari 54
试试这段代码:
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
Run Code Online (Sandbox Code Playgroud)
"完成"功能仅在ajax"成功"之后执行.因此,尝试在"完成"上调用printWithAjax().这应该适合你.
Muk*_*ain 22
你可以使用.ajaxStop()或.ajaxComplete()
.ajaxComplete() 在页面上完成每个AJAX请求后触发.
$( document ).ajaxComplete(function() {
yourFunction();
});
Run Code Online (Sandbox Code Playgroud)
.ajaxStop() 完成页面上的所有AJAX请求后触发.
$( document ).ajaxStop(function() {
yourFunction();
});
Run Code Online (Sandbox Code Playgroud)
Geo*_*Geo 10
将.done()添加到您的函数中
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];
}
}).done(function(){
printWithAjax();
});
}//end of the for statement
}//end of ajax call function
Run Code Online (Sandbox Code Playgroud)
附加.done()到您的 ajax 请求。
$.ajax({
url: "test.html",
context: document.body
}).done(function() { //use this
alert("DONE!");
});
Run Code Online (Sandbox Code Playgroud)
请参阅JQuery 文档.done()
| 归档时间: |
|
| 查看次数: |
164494 次 |
| 最近记录: |