Jen*_*-Ya 2 javascript ajax jquery jquery-callback
让我们假设您在for循环中创建一些ajax请求,如下所示:
$(function(){
for(var i=0;i<10;i++){
$.ajax({
url : '/',
success : function(){
console.log('callback '+i+' fired!');
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
当然,回调每次都会记录'callback 10 fired',因为回调是异步执行的.问题是:你怎么知道哪个回调被解雇了?
匿名自调用函数将解决此闭包问题:
$(function(){
for(var i=0;i<10;i++){
(function(i) {
$.ajax({
url : '/',
success : function(){
console.log('callback '+i+' fired!');
}
});
})(i);
}
});
Run Code Online (Sandbox Code Playgroud)
使用立即调用的函数表达式创建范围:
$(function(){
for(var i=0;i<10;i++){
(function(i){
$.ajax({
url : '/',
success : function(){
console.log('callback '+i+' fired!');
}
});
})(i);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |