【问题标题】:removeEventListener of anonymous function bind [duplicate]匿名函数绑定的removeEventListener [重复]
【发布时间】: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);

【问题讨论】:

    标签: javascript dom this bind


    【解决方案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);
      

      【讨论】:

        猜你喜欢
        • 2011-06-24
        • 1970-01-01
        • 2013-02-08
        • 2013-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-22
        • 1970-01-01
        相关资源
        最近更新 更多