javascript回调函数结果 for(var i=0;i
我认为这是此时创建框[i]的唯一方法。对于创建完的回调,您可以使用jQuery的promise和deffered system(多个)。或者您可以在代码中维护一个计数器,以便仅在达到10的目标后执行某些代码 也许像这样 var target=counter=10,data={}; 对于(var i=0;i 您尝试使用a是正确的,但是您使用了错误的变量名-它应该是javascript回调函数结果 for(var i=0;i,javascript,jquery,loops,callback,Javascript,Jquery,Loops,Callback,我认为这是此时创建框[i]的唯一方法。对于创建完的回调,您可以使用jQuery的promise和deffered system(多个)。或者您可以在代码中维护一个计数器,以便仅在达到10的目标后执行某些代码 也许像这样 var target=counter=10,data={}; 对于(var i=0;i 您尝试使用a是正确的,但是您使用了错误的变量名-它应该是x而不是i: (function(x) { request(box[x], function(n) {
x
而不是i
:
(function(x) {
request(box[x], function(n) {
data[x] = n;
if(--counter == 0) {
//all are done
}
}
})(i)
}
for(var i=0;i您的代码当前无法正常工作。调用$.getJSON()
后的“请求”中的所有代码都应该在$.getJSON()中
回调。$.getJSON
是异步的,你不能在回调之外使用dataArray
。有谁知道解释AJAX和异步含义的非常好的全面响应吗?像这样的问题经常出现,如果有一个好的(可能是社区wiki)就好了回应,将他们全部指向。@JamesMontagne我一直在用它作为结束语的副本。@James:我就是为了这个目的而写的,但更多的是针对“如何从ajax调用中返回值”的问题。我今天犯了各种各样的错误。对此我深表歉意。
(function(x) {
request(box[x], function(n) {
data[x] = n;
if(--counter == 0) {
//all are done
}
}
})(i)
}
for (var i=0; i<10; i++) {
var box = $('div.container');
(function(x) {
request(box[x], function(n) {
//question about function(n) here
}
})(i)
}