繁体   English   中英

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

[英]Removing an dynamically and previously added event listener on button click

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

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

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

其中highlightElement是我的功能。

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

document.removeEventListener('click', hilightElement);

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

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

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

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

 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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM