在单击按钮时删除先前动态添加的事件侦听器

本文关键字:添加 动态 事件 侦听器 单击 按钮 删除 | 更新日期: 2023-09-27 18:13:57

在c#中,我通过ExecuteScript()函数执行JavaScript。在JavaScript中,我添加了一个EventListener到网页通过点击一个按钮说"附加"。现在我想删除另一个按钮上的EventListener,点击'Detach'。

现在在"附加"按钮下的表单。我写了以下内容:

document.addEventListener('click', hilightElement, false);

其中highlightElement是我的函数

在"分离"按钮下的表单。我写了如下

document.removeEventListener('click', hilightElement);

文档。removeEventListener不工作,即我添加的EventListener仍然存在。

是否有任何方法可以删除事件监听器,以便'click'事件在'Detach'按钮单击后不做任何事情

在单击按钮时删除先前动态添加的事件侦听器

我试了你的代码如下,它工作如预期:

var attach = document.getElementById('attach');
var detach = document.getElementById('detach');
var hilightElement = function() {
  alert("Here");
};
attach.addEventListener('click', function(e) {
  e.stopPropagation();
  document.addEventListener('click', hilightElement, false);
});
detach.addEventListener('click', function() {
  document.removeEventListener('click', hilightElement);
});
<button type="button" id="attach">Attach</button>
<button type="button" id="detach">Detach</button>

尝试Rayons的例子,因为我意识到我正在编写相同的代码。