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

时间:2015-09-22 07:54:12

标签: javascript c# javascript-events addeventlistener event-listener

在C#中我通过ExecuteScript()函数执行了JavaScript。在JavaScript中,我通过单击“附加”按钮向网页添加了一个EventListener。现在我想在另一个按钮上删除该EventListener,然后单击“Detach”。

现在在“附加”按钮表格下。 我写了以下

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

其中highlightElement是我的功能。

在“分离”按钮表格下。 我写了以下

document.removeEventListener('click', hilightElement);

这里document.removeEventListener不起作用,即我添加的EventListener仍然存在。

  

有什么方法可以删除事件监听器,以便在“分离”按钮单击后“click”事件不会执行任何操作。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我尝试了如下代码,它按预期工作:



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>
&#13;
&#13;
&#13;