为什么在for循环为3时,JavaScript会警告allways 4? [英] Why JavaScript alerts allways 4 in when for-loop is for 3?

查看:152
本文介绍了为什么在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆