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