javascript – addEventHandler到类中的每个元素

前端之家收集整理的这篇文章主要介绍了javascript – addEventHandler到类中的每个元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用类的一部分向所有元素添加一个事件侦听器,但它只将它应用于节点列表中的最后一个对象.
var section = document.querySelectorAll('.section');
for(var i=0;i<section.length;i++){
var elem = section[i];
elem.addEventListener('click',function () {move (elem)},false); 
}

有没有办法为每一个添加事件监听器?

解决方法

问题是JavaScript中没有块范围.所以每次迭代都会覆盖elem,而不是每次都被声明为新变量.在每次迭代中声明新变量的唯一方法是通过一个函数
for(var i = 0; i < section.length; i++){
  (function(elem) {
    elem.addEventListener('click',function() { move(elem); },false);
  })(elem);
}

但addEventListener将此设置为元素,因此在您的情况下,您可以整齐地执行:

for(var i = 0; i < section.length; i++){
  elem.addEventListener('click',function () { move(this); },false);
}
原文链接:https://www.f2er.com/js/158830.html

猜你在找的JavaScript相关文章