Javascript删除事件侦听器

Javascript删除事件侦听器,javascript,Javascript,我有一个照片查看器html页面,用户可以在其中以幻灯片形式查看本地文件夹中的图像。我有一个复选框,用户可以在其中选择他们正在查看的图像,以便以后进行操作。用户可以选择一个图像,转到下一个图像,也可以选择该图像,等等。当我加载一个新图像时,我有一个变量img_path,它会传递给复选框的事件侦听器 我的问题是,当我加载一个新映像时,带有旧img_路径的旧事件侦听器不会被删除,而是每个事件侦听器都会保留下来 例如,当我选择并取消选择幻灯片中的第一个图像时,一切正常,控制台输出正常 Selecting

我有一个照片查看器html页面,用户可以在其中以幻灯片形式查看本地文件夹中的图像。我有一个复选框,用户可以在其中选择他们正在查看的图像,以便以后进行操作。用户可以选择一个图像,转到下一个图像,也可以选择该图像,等等。当我加载一个新图像时,我有一个变量
img_path
,它会传递给复选框的事件侦听器

我的问题是,当我加载一个新映像时,带有旧
img_路径的旧事件侦听器不会被删除,而是每个事件侦听器都会保留下来

例如,当我选择并取消选择幻灯片中的第一个图像时,一切正常,控制台输出正常

Selecting images/00001.jpg
Deselecting images/00001.jpg
Selecting images/00001.jpg
Selecting images/00002.jpg
Deselecting images/00001.jpg
Deselecting images/00002.jpg
但是当我转到第二个图像,然后选择并取消选择时,输出是

Selecting images/00001.jpg
Deselecting images/00001.jpg
Selecting images/00001.jpg
Selecting images/00002.jpg
Deselecting images/00001.jpg
Deselecting images/00002.jpg
这是我的代码:

//每次用户点击“下一步”按钮时都会调用此函数
功能设置幻灯片(img\U id,选择框){
...
让img_path=“images/”+img_id+“.jpg”
函数选择_事件(){
如果(选中复选框){
console.log(“选择”+img_路径)
选择\u img(img\u路径);
}
否则{
console.log(“取消选择”+img_路径)
取消选择img(img路径);
}
}
选择\u框。移除事件列表器(“单击”,选择\u事件,false);
选择\u box.addEventListener(“单击”,选择\u事件,false);
}
其中
选择框
来自:

//这仅在创建幻灯片页面时发生一次
让我们选择_box=document.createElement('input');
选择“box.type=”复选框“

我试图使用
removeEventListener
删除带有旧
img\u path
变量的旧事件侦听器,但我一定是做错了。

您尝试删除的函数
select\u event
不是您在第一次调用中添加的函数
select\u event
。这是新的。对于这种情况,使用
选择框可能是最简单的方法。单击
@Thomas Yes当然我应该意识到这一点。您的解决方案非常有效,谢谢!