匿名函数bind的removeEventListener

时间:2018-12-27 16:46:06

标签: javascript dom this bind

我需要删除匿名函数上的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 :(得分:3)

bind创建了一个新功能,您可以从documentation

中读取

所以您可以做的事情是这样的:

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

答案 1 :(得分:0)

我最终使用了另一种方法来删除事件侦听器。我深度克隆了节点并替换了它。

var matchOne = cardOne.cloneNode(true);
cardOne.parentNode.replaceChild(matchOne, cardOne);