gpt4 book ai didi

javascript - 增量计数器在循环外不可用

转载 作者:行者123 更新时间:2023-11-29 17:30:41 29 4
gpt4 key购买 nike

我正在使用 jQuery 的 $.each() 遍历 json 返回值,并将返回的类添加到它们对应的 <div> 中。的;然而,计数器似乎无法在立即循环之外进行进一步处理。我试过使用 return 的 & 外部函数调用无济于事。当我 alert() 迭代内的计数器时,它正确显示;并且所有类都正确更新。任何见解将不胜感激。

代码:

var c = 0;
function refreshIt(){
var page = $(".navselected").attr('id');
var ids = $('.content div[id]').map(function(){
return this.id;
}).get();

$.ajax({
type:'POST',
url:page + 'functions.php',
data:{'idList[]':ids},
dataType:'json',
success:function(data){
$.each(data,function(element,load){
$("#" + element).slideUp(400,function(){
$("#" + element).removeClass("critical ok");
$("#" + element).addClass(load.status).html(load.number).slideDown(400);
if(load.status == 'ok'){
c++;
}
else{
c++;
}
});
});

$('.infostatus').addClass('infook').html("There are " + c + " errors on this page. Kudos!");
}
});
}

最佳答案

当您进行 ajax 调用时,浏览器会发送请求并将函数附加到它,然后在等待响应的同时继续执行脚本的其余部分。这意味着最后一行代码几乎肯定会在 ajax 返回之前执行。将该行放在 ajax success 函数中,就在每个函数之后:

$.ajax({
type:'POST',
url:page + 'functions.php',
data:{'idList[]':ids},
dataType:'json',
success:function(data){
$.each(data,function(element,load){
$("#" + element).slideUp(400,function(){
$("#" + element).removeClass("critical ok");
$("#" + element).addClass(load.status).html(load.number).slideDown(400);
if(load.status == 'ok'){
c++;
}
else{
c++;
}
});

$('.infostatus').addClass('infook')
.html("There are " + c + " errors on this page. Kudos!");

});

关于javascript - 增量计数器在循环外不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4502478/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com