And*_*dré 2 jquery ajax-request
我有一种我无法理解的怪异行为.这是代码:
$.ajax({
url: ...,
dataType: ...,
data: ...,
success: function( data ) {
...
for (var i=0; i<data.length; i++) {
label_to_change = "some-" + i + "-item"
$.ajax({
url: ...,
dataType: ...,
data: ...,
success: function( data ) {
// Why I can't access the value in each loop, this will give me allways the last loop value
console.log(label_to_change)
}
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
我需要在第二个ajax请求中访问var label_to_change,但不是这样:
some-0-item
some-1-item
some-2-item
Run Code Online (Sandbox Code Playgroud)
我懂了:
some-2-item
some-2-item
some-2-item
Run Code Online (Sandbox Code Playgroud)
关于我做错的任何线索?
最好的祝福,
问题是因为label_to_change变量是单个实例,并且for循环在任何ajax调用完成之前将其更改3次.你可以使用一个匿名函数(或者这里正确的术语),并做这样的事情:
label_to_change = "some-" + i + "-item";
(function(newLabel){
$.ajax({
url: ...,
dataType: ...,
data: ...,
success: function( data ) {
console.log(newLabel)
}
});
})(label_to_change);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
703 次 |
| 最近记录: |