可能重复:
Variable in JavaScript callback functions always gets last value in loop?
我无法将k的值传递给fadeOut函数的回调函数。 我的循环如下所示。
for(var k=0;k<image1.length;k++)
{
$(img[k]).fadeOut(200,function(k) {
alert(k);
$(this).attr('src', image2[k]);
$(this).fadeIn(200);
});
}
答案 0 :(得分:4)
jQuery fadeOut
函数采用不带参数的回调函数。从jQuery documentation开始,“回调不会发送任何参数”。如果要捕获k
的值,请执行以下操作:
for(var k=0;k<image1.length;k++) {
(function(k) {
$(img[k]).fadeOut(200,function() {
alert(k);
$(this).attr('src', image2[k]);
$(this).fadeIn(200);
});
})(k);
}
答案 1 :(得分:3)
您必须执行以下操作才能为您的变量提供回调权限:
for (var k = 0; k < image1.length; k++) {
(function(k) {
$(img[k]).fadeOut(200, function() {
alert(k);
this.src = image2[k];
$(this).fadeIn(200);
});
})(k);
}