为什么传递参数时, 传递Array[i]无效

divs[i].addEventListener('click',function(){change(divs[i],{left:0})},false);

如上, for循环给divs[i]添加事件时, 往另一个函数传递参数,但是只能用this ,用divs[i]的话无效,


求解, 为什么不能传递divs[i].

奈纱
浏览 1456回答 2
2回答

刚毅87

因为外层的 for 循环走完之后,才执行的鼠标点击事件,所以此时 i= divs.length,而 divs[divs.length]不存在,因此不能用 divs[i],只能用 this.

Marcia

因为事件触发后的执行函数已经脱离原来的执行环境了,没有i这个变量了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript