簡體   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