Javascript onclick侦听器

用户名

我面临着一个使我发疯的问题。我正在遍历一组元素。假设集合的大小为N。在每次迭代中,我都写出node.onclick = function() { handleClick(idx); };node是元素,而idx是全局变量,我在每次迭代中都会递增。我的目标是以这样的方式监听N个元素:单击元素i(i属于[0,N-1])时,将使用参数idx = i调用handleClick(idx)。但是,调试显示,无论单击哪个元素,在handleClick(idx)中,idx始终等于N-1(最后一个值)。我也尝试使用idx作为局部变量。我试图创建一个全局数组node [],它在每次迭代中都推送一个新元素...

如何将“ onclick”侦听器设置为N个不同的元素(例如处理程序函数)相同,但该函数的参数不同?怎么做?谢谢!

ro

该问题由DontVoteMeDown描述,一种解决方案是创建一个这样的匿名函数:

node.onclick = (function(idx) {
    return function() { handleClick(idx); };
})(idx);

该操作直接称为匿名函数,因此id被复制到一个新变量中,该变量可在匿名函数内部进行补救。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章