Javascript 对于循环赢得';t将i变量传递给循环内的Jquery函数
我有一个for循环,它不会将它的I变量或任何类型的变量传递到Jquery函数中,该函数被编码为与每个循环一起运行Javascript 对于循环赢得';t将i变量传递给循环内的Jquery函数,javascript,jquery,for-loop,Javascript,Jquery,For Loop,我有一个for循环,它不会将它的I变量或任何类型的变量传递到Jquery函数中,该函数被编码为与每个循环一起运行 for (var i = 0; i < result.length; i++) { $('#frame-' + i + '').fadeOut(function () { ALERT(i); document.getElementById('frame-' + i + '').getElementsByTagName('img')[0].
for (var i = 0; i < result.length; i++) {
$('#frame-' + i + '').fadeOut(function () {
ALERT(i);
document.getElementById('frame-' + i + '').getElementsByTagName('img')[0].src = 'img/' + result.cat[i].id + '.png';
});
$('#frame-' + i + '').fadeIn();
}
for(变量i=0;i
我发现我可以使用.on或.bind函数,但我不知道如何使用fadeOut()
fadeOut.on()不起作用
有什么建议可以让它工作吗?再次结束
$.each(result, function (i, res) {
$('#frame-' + i + '').fadeOut(function () {
alert(i);
$(this).find('img').get(0).attr('src', 'img/' + res.cat.id + '.png');
}).fadeIn();
})
再次关闭
$.each(result, function (i, res) {
$('#frame-' + i + '').fadeOut(function () {
alert(i);
$(this).find('img').get(0).attr('src', 'img/' + res.cat.id + '.png');
}).fadeIn();
})
问题是,当淡出完成时,for循环已经完成,因此淡出代码读取的
i
值将始终相同(最后一个值)
创建一个闭包来传递i
的值。这将为您提供一个不会被for循环覆盖的i
的本地副本。同时将ALERT()
更改为ALERT()
(Javascript区分大小写)
for(变量i=0;i
问题在于,当淡出完成时,for循环已经完成,因此淡出代码读取的i
值将始终相同(最后一个值)
创建一个闭包来传递i
的值。这将为您提供一个不会被for循环覆盖的i
的本地副本。同时将ALERT()
更改为ALERT()
(Javascript区分大小写)
for(变量i=0;i
将frame-'+i+'
替换为frame-'+i
@DipeshParmar这不是问题,因为i
在回调中不在范围内。看起来关闭问题alert()
与alert()不同
.replaceframe-'+i+'
与frame-'+i
@DipeshParmar的可能重复不是问题,因为i
在回调中不在范围内。看起来像是关闭问题alert()
与alert()
不一样。的可能重复