Cześć,
Tworzę własny MessageBox. Jedną z opcji jest możliwość zamknięcia go przy kliknięciu w obszar poza boxem lub gdy zostanie naciśnięty Esc. Zdarzenia podpinane są przy użyciu addEventListener
. Przy zamykaniu zarówno tło jak i sam box oraz zdarzenia są usuwane (removeEventListener
). Ale zdarzenia ciągle się wywołują. Czemu?
Kod: https://jsfiddle.net/8an59rwk/1/
0
1
Do removeEventListener
musisz przekazać dokładnie tę samą wartość, którą przekazujesz do addEventListener
:
const fn = () => {
this.something();
};
window.addEventListener('foo', fn);
window.removeEventListner('foo', fn);
Wywołanie bind
zwraca nową referencję i nawet jeśli efektywnie ewaluuje się do tego samego, wciąz jest to jakiś nowy obiekt.
0
Fakt - dzięki za pomoc :)