在onclick事件处理程序循环中设置当前元素

用户429620

我正在遍历多个元素,我也想为其分配一个onclick事件处理程序。

问题是发送到goTo函数(事件处理程序)的元素始终是循环中的最后一个元素。我究竟做错了什么?

var navLinks = document.getElementsByClassName('navigation');

    for (var i = 0; i < navLinks.length; i++) {
        var navLink = navLinks[i];
        navLink.onclick = function() { goTo.call(navLink); }
    }
埃德加·维尔加斯·阿尔瓦拉多

您应该添加一个闭包,如下所示:

var navLinks = document.getElementsByClassName('navigation');

for (var i = 0; i < navLinks.length; i++) {
    var navLink = navLinks[i];
    (function(navLink){   //This line does the magic
         navLink.onclick = function() { goTo.call(navLink); }  
    })(navLink);  //This calls the created function      
}

这样,内部navLink将在每个循环周期中都是唯一的,因此不会被覆盖(这就是为什么它会保留先前代码中的最新值)

干杯

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在for循环中绑定事件处理程序

来自分类Dev

在循环中绑定事件处理程序

来自分类Dev

使用javascript在循环中注入元素并附加Click事件处理程序

来自分类Dev

使用javascript在循环中注入元素并附加Click事件处理程序

来自分类Dev

特定div元素的onclick事件处理程序

来自分类Dev

事件处理程序在循环中无法正常工作

来自分类Dev

事件处理程序未从Foreach循环中触发

来自分类Dev

事件处理程序在循环中无法正常工作

来自分类Dev

循环中的JS onclick事件

来自分类Dev

循环中的JS onclick事件

来自分类Dev

在子元素的onclick事件处理程序中定位父元素

来自分类Dev

如何声明性地设置Button onClick事件处理程序?

来自分类Dev

在循环中设置单击按钮事件

来自分类Dev

在循环中将事件处理程序分配给具有变量的对象

来自分类Dev

为 for 循环中的每个项目添加一个 onclick 处理程序

来自分类Dev

使用局部变量为循环中的元素设置onclick方法,而无需立即激活它

来自分类Dev

批处理-在for循环中设置变量

来自分类Dev

在不循环的情况下将当前行值获取到jQuery事件处理程序中

来自分类Dev

for循环中的C预处理程序串联

来自分类Dev

在基于范围的for循环中设置矢量元素

来自分类Dev

在 foreach 循环中取消设置数组元素

来自分类Dev

将onclick添加到元素,但保持当前的onclick事件

来自分类Dev

如何将 onClick 事件处理程序添加到画布元素(弧)?

来自分类Dev

为什么将'onClick'设置为事件处理程序不能识别为语法错误?

来自分类Dev

Onclick事件处理程序似乎未调用

来自分类Dev

在React中使用onClick事件处理程序

来自分类Dev

Onclick事件处理程序似乎未调用

来自分类Dev

onclick事件处理程序不起作用

来自分类Dev

批处理文件:在嵌套循环中处理列表元素

Related 相关文章

  1. 1

    在for循环中绑定事件处理程序

  2. 2

    在循环中绑定事件处理程序

  3. 3

    使用javascript在循环中注入元素并附加Click事件处理程序

  4. 4

    使用javascript在循环中注入元素并附加Click事件处理程序

  5. 5

    特定div元素的onclick事件处理程序

  6. 6

    事件处理程序在循环中无法正常工作

  7. 7

    事件处理程序未从Foreach循环中触发

  8. 8

    事件处理程序在循环中无法正常工作

  9. 9

    循环中的JS onclick事件

  10. 10

    循环中的JS onclick事件

  11. 11

    在子元素的onclick事件处理程序中定位父元素

  12. 12

    如何声明性地设置Button onClick事件处理程序?

  13. 13

    在循环中设置单击按钮事件

  14. 14

    在循环中将事件处理程序分配给具有变量的对象

  15. 15

    为 for 循环中的每个项目添加一个 onclick 处理程序

  16. 16

    使用局部变量为循环中的元素设置onclick方法,而无需立即激活它

  17. 17

    批处理-在for循环中设置变量

  18. 18

    在不循环的情况下将当前行值获取到jQuery事件处理程序中

  19. 19

    for循环中的C预处理程序串联

  20. 20

    在基于范围的for循环中设置矢量元素

  21. 21

    在 foreach 循环中取消设置数组元素

  22. 22

    将onclick添加到元素,但保持当前的onclick事件

  23. 23

    如何将 onClick 事件处理程序添加到画布元素(弧)?

  24. 24

    为什么将'onClick'设置为事件处理程序不能识别为语法错误?

  25. 25

    Onclick事件处理程序似乎未调用

  26. 26

    在React中使用onClick事件处理程序

  27. 27

    Onclick事件处理程序似乎未调用

  28. 28

    onclick事件处理程序不起作用

  29. 29

    批处理文件:在嵌套循环中处理列表元素

热门标签

归档