JavaScript中有时会用到给Html动态添加事件,在传递参数中需要注意下.
下例中注释掉的部分运行会出问题,有人说这属于JavaScript闭包的问题
至于何为闭包,管它的了.
<html>
<head>
<title>无标题页</title>
</head>
<body>
<input id="Text1" type="text" />
<input id="Text2" type="text" />
</body>
<script>
var f = function(k)
{
return function()
{
alert(k);
}
}
// var f2 = function(k2)
// {
// alert(k2);
// }
var ctls = document.getElementsByTagName("input");
for(var i=0;i<ctls.length;i++)
{
if (ctls[i].type=="text")
{
ctls[i].attachEvent("onclick",f(i));
//ctls[i].attachEvent("onclick",f2(i));
}
}
</script>
</html>
浙公网安备 33010602011771号