jquery ajax可以使用异步方法,如果在循环中,那么,在success或error中输出循环变量i,那么,每次都只会输出最后一个i,该问题如何解决呢?
一、问题所在
for (var index = 0; index < 4; index++) {
$.ajax({
url: 'http://www.dzwebs.net',
dataType: 'json',
success: function(e) {
console.log(index);
}
});
}
上面的代码,输出的一直都是3,而我们想要的是0 1 2 3
二、如何解决该问题呢?
for (var index = 0; index < 4; index++) {
(function(currentvalue){$.ajax({
url: 'http://graph.facebook.com/',
dataType: 'jsonp',
success: function(e) {
console.log(currentvalue);
}
});
})(index);
}
注意,上面的currentvalue代表形参,index叫实参,当然了,e是成功回调的参数。