簡體   English   中英

如何從 Javascript 中的元素中刪除點擊事件?

[英]How can I remove a click event from an element in Javascript?

我有一個<div>元素,它使用以下代碼附加了一個點擊事件:

var id = "someId";
var elem = document.getElementById("elemId");
elem.addEventListener("click", function() { someFunction(id); }, false);

稍后我復制元素並將其添加到DOM的另一部分,但需要先刪除click事件

var elem = document.getElementById("elemId");
elem.removeEventListener("click", ???? , false);

我不確定如何引用偵聽器,到目前為止,我沒有嘗試過從元素中刪除事件。

有任何想法嗎?

將匿名點擊處理程序 function 移出addEventListener調用:

var id = "someId";
var elem = document.getElementById("elemId");
var elemEventHandler = function() { someFunction(id); };
elem.addEventListener("click", elemEventHandler , false);

之后,您應該能夠:

var elem = document.getElementById("elemId");
elem.removeEventListener("click", elemEventHandler , false);

上面的答案是正確的。 但是,以防萬一,有人希望刪除onclick function ,它連接到這樣的按鈕,例如

<button type="button" onclick="submit()" id="tour-edit-save">Save</button>

在這種情況下,要刪除onclick附加的 function,必須刪除屬性onclick ,這樣可以正常工作。 這是使用純JavaScript刪除的方法

document.getElementById('tour-edit-save').removeAttribute('onclick');

使用jquery

$('#tour-edit-save').removeAttr('onclick');

希望這對正在尋找此答案的人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM