gpt4 book ai didi

Javascript onclick 监听器

转载 作者:行者123 更新时间:2023-11-30 17:40:55 25 4
gpt4 key购买 nike

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

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

最佳答案

问题由 DontVoteMeDown 描述,解决方案是创建一个匿名函数,如下所示:

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

这样做是直接调用匿名函数,因此 id 被复制到一个新变量中,该变量保留在匿名函数中。

关于Javascript onclick 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21111641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com