【发布时间】:2015-04-05 14:21:24
【问题描述】:
我的代码几乎可以说明我将要实现的目标,但只是为了澄清......
我想在长按(鼠标按住 200 毫秒)后返回一个输入值。
它在 for 循环之外运行良好,但在循环内部却似乎不行。
对于 this.value,它返回 undefined,对于 gangina[i].value,它什么也不返回。
这里是 jsFiddle:
http://jsfiddle.net/hezi_gangina/nxao19oc/
这是我的代码:
<input type=button value=1>
<input type=button value=2>
<script>
var hezi;
var gangina=document.getElementsByTagName("input");
alert(gangina[1].value); //THIS IS OK! :)
for(i=0;i<gangina.length;i++)
{
gangina[i].onmousedown=function()
{
hezi=setTimeout
(
function()
{
alert('this = '+this.value); // = undefined
alert('gangina['+i+'] = '+gangina[i].value); // = nothing
},200
);
}
}
</script>
这里需要小调整...
【问题讨论】:
-
你应该像这样在你的 for 循环中声明 i 变量吗?
for(var i=0; i<gangina.length; i++)
标签: javascript arrays this settimeout onmousedown