我有一个存储在名为 的变量中的元素列表elementList,并希望为每个元素添加一个事件侦听器。所以我创建了以下循环:
for (i = 0; i < elementList.length; i++) {
elementList[i].addEventListener('click', myFunction, false);
}
问题?我需要i作为参数传递给myFunction. 在网上做了一些研究后,我找到了这个解决方案:
for (i = 0; i < elementList.length; i++) {
elementList[i].addEventListener('click', (function(i){
return function(){
myFunction(i);
};
}(i)), false);
}
代码运行良好——但仍然存在问题。稍后在我的代码中,我需要再次删除事件侦听器,这是通过该removeEventListener()方法完成的,正如我在进行更多研究后发现的那样。
但是这个方法需要一个命名的外部函数——它不适用于匿名函数。所以它适用于我上面的第一个例子,但不适用于第二个例子。
所以我的问题是:如何将事件侦听器添加到元素列表中,这样我就可以做这两件事:
将参数传递给我的函数
再次移除事件监听器,稍后在代码中
谢谢你的帮助!
拉丁的传说
月关宝盒
PIPIONE
随时随地看视频慕课网APP
相关分类