removeEventListener анонимной функции bind - PullRequest
0 голосов
/ 27 декабря 2018

Мне нужна помощь в удалении EventListener для анонимной функции.Я попытался использовать обработчик событий, но мне также нужно передать элемент через функцию, чтобы связать его.

// adds eventlistener to element
cardElement.addEventListener("click", flipCard.bind(this, cardElement));

// suppose to remove eventlistener
document.getElementById(cardsInPlay[0].id).removeEventListener("click", flipCard);

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

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

var matchOne = cardOne.cloneNode(true);
cardOne.parentNode.replaceChild(matchOne, cardOne);
0 голосов
/ 27 декабря 2018

bind создает новую функцию, как вы можете прочитать из документации

Так что вы можете сделать что-то вроде:

flipCard = flipCard.bind(this, cardElement);
cardElement.addEventListener("click", flipCard);
document.getElementById(cardsInPlay[0].id).removeEventListener("click", flipCard);
...