匿名函数绑定的removeEventListener [重复]
Posted
技术标签:
【中文标题】匿名函数绑定的removeEventListener [重复]【英文标题】:removeEventListener of anonymous function bind [duplicate] 【发布时间】:2019-05-25 16:08:49 【问题描述】:我需要帮助删除匿名函数上的 EventListener。我尝试使用事件处理程序,但我还需要通过函数传递一个元素来绑定它。
// adds eventlistener to element
cardElement.addEventListener("click", flipCard.bind(this, cardElement));
// suppose to remove eventlistener
document.getElementById(cardsInPlay[0].id).removeEventListener("click", flipCard);
【问题讨论】:
【参考方案1】:bind
创建一个新函数,您可以从documentation 中读取
所以你可以做的是:
flipCard = flipCard.bind(this, cardElement);
cardElement.addEventListener("click", flipCard);
document.getElementById(cardsInPlay[0].id).removeEventListener("click", flipCard);
【讨论】:
【参考方案2】:我最终使用了不同的方法来移除事件监听器。我对节点进行了深度克隆并替换了它。
var matchOne = cardOne.cloneNode(true);
cardOne.parentNode.replaceChild(matchOne, cardOne);
【讨论】:
以上是关于匿名函数绑定的removeEventListener [重复]的主要内容,如果未能解决你的问题,请参考以下文章
ie7ie8兼容addEventListener和removeEventListener,解决this指向和detachEvent解除绑定事件问题