为什么当for循环为3时,此JavaScript始终向4发出警报?
// 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) });
}
最佳答案
当循环结束时,i
是>3
,要在函数调用中保留特定数字,请使用闭包:
la.addEventListener("click", (function(count) { return function () { reOrderLayers(count) } })(laCount) );