为什么在for循环为3时,JavaScript会警告allways 4? [英] Why JavaScript alerts allways 4 in when for-loop is for 3?
本文介绍了为什么在for循环为3时,JavaScript会警告allways 4?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
// alert
函数为什么这个JavaScript警告allways 4 in for循环是3? reOrderLayers(layerToaAlter){
alert(layerToaAlter);
}
//准备
var laCount;
for(laCount = 1; laCount< = 3; laCount ++){
var la = document.getElementById(layerChanger+ laCount);
la.addEventListener(click,function(){reOrderLayers(laCount)});
解决方案
code> i 是> 3
,用来在函数调用中保留特定的数字:
la.addEventListener(click,(function(count){return function(){reOrderLayers(count)}})(laCount));
Why this JavaScript alerts allways 4 in when for-loop is for 3?
// alert
function reOrderLayers(layerToaAlter) {
alert(layerToaAlter);
}
// prepare
var laCount;
for (laCount = 1; laCount <= 3; laCount++) {
var la = document.getElementById("layerChanger"+laCount);
la.addEventListener("click", function () { reOrderLayers(laCount) });
}
解决方案
When loop is finished means i
is >3
, to preserve particular number in function call use closures:
la.addEventListener("click", (function(count) { return function () { reOrderLayers(count) } })(laCount) );
这篇关于为什么在for循环为3时,JavaScript会警告allways 4?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文