Как я могу удалить событие клика из элемента в Javascript? - PullRequest
9 голосов
/ 16 июля 2011

У меня есть элемент <div>, к которому прикреплено событие click с использованием следующего кода:

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);

Я не уверен, как ссылаться на слушателя, и пока ничего из того, что я пробовал, не удалило событие из элемента.

Есть идеи?

Приветствия

Стюарт

1 Ответ

7 голосов
/ 16 июля 2011

Переместите функцию обработчика анонимного клика из вызова 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...