Ayuda:-) ¿Cómo elimino este oyente?
this.overlay.addEventListener('click', this._handlePlay.bind(this));_handlePlay se ve así:
_handlePlay() { this._isOpen = !this._isOpen; }Lo intenté...
this.overlay.removeEventListener('click', this._handlePlay.bind(this));y más desesperadamente:
this.overlay.removeEventListener('click', this._handlePlay());pero el oyente no abandonará la escena?
Tengo el enlace como estoy en js y contexto de componente web
/Saludos
La función que pasa a removeEventListener debe ser la misma función que pasa a addEventListener .
bind crea una nueva función.
this.overlay.addEventListener('click', this._handlePlay.bind(this));
Dado que no mantiene el valor de this._handlePlay.bind(this) , no hay forma de recuperar esa función para pasarla a removeEventListener .
Debe mantener el valor en algún lugar al que pueda acceder cuando más tarde intente eliminar el detector de eventos.
const boundHandlePlay = this._handlePlay.bind(this); this.overlay.addEventListener('click', boundHandlePlay); this.overlay.removeEventListener('click', boundHandlePlay);