[英]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.