我需要删除匿名函数上的EventListener的帮助。我尝试使用事件处理程序,但还需要通过该函数传递一个元素以将其绑定。
// adds eventlistener to element
cardElement.addEventListener("click", flipCard.bind(this, cardElement));
// suppose to remove eventlistener
document.getElementById(cardsInPlay[0].id).removeEventListener("click", flipCard);
答案 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);