javascript - 如何从 Javascript 中的元素中删除点击事件?

标签 javascript dom-events

我有一个 <div>使用以下代码附加了点击事件的元素:

var id = "someId";
var elem = document.getElementById("elemId");
elem.addEventListener("click", function() { someFunction(id); }, false);

稍后我复制该元素并将其添加到 DOM 的另一部分, 但需要先删除 click事件

var elem = document.getElementById("elemId");
elem.removeEventListener("click", ???? , false);

我不确定如何引用监听器,到目前为止我没有尝试从元素中删除事件。

有什么想法吗?

最佳答案

将匿名点击处理函数移出 addEventListener 调用:

var id = "someId";
var elem = document.getElementById("elemId");
var elemEventHandler = function() { someFunction(id); };
elem.addEventListener("click", elemEventHandler , false);

之后你应该能够:

var elem = document.getElementById("elemId");
elem.removeEventListener("click", elemEventHandler , false);

关于javascript - 如何从 Javascript 中的元素中删除点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717960/

相关文章:

javascript - 一般脚本 : selecting the input element for which keypress event is fired, 没有实际传递 ID 等

javascript - 将事件附加到 Angular2 中的新元素

javascript - 将 require.js 库包含在 bundle 中还是单独保留?

javascript - 在 Javascript 中将事件监听器添加到 'memory objects'?

javascript - 为什么 Javascript 异常会使解释器处于不可预测的状态?

javascript - Ember 应用程序无法从本地文件加载 json 数据

javascript - 两次按键后触发事件

html - 服务器发送的事件与轮询

javascript - 如何将处理程序绑定(bind)到窗口上的选择更改?

javascript - 首先调用 Javascript 函数,然后调用动态创建的复选框的 CheckChanged 事件