Всем привет, устанавливаю листенеры в функции:
addListeners(): void {
const menuBbtn = document.querySelector('.top-menu');
const btnGarageNext = document.querySelector('#btn-garage-next');
const btnGaragePrev = document.querySelector('#btn-garage-prev');
if (btnGarageNext !== null) {
btnGarageNext.addEventListener('click', this.onButtonGarageNext.bind(this));
}
if (btnGaragePrev !== null) {
btnGaragePrev.addEventListener('click', this.onButtonGaragePrev.bind(this));
}
if (menuBbtn !== null) {
menuBbtn.addEventListener('click', this.onButtonMenu.bind(this));
}
}
И мне потом нужно их удалить т.к страница будет перерендериваться, написал вот так:
removeListeners(): void {
const menuBbtn = document.querySelector('.top-menu');
const btnGarageNext = document.querySelector('#btn-garage-next');
const btnGaragePrev = document.querySelector('#btn-garage-prev');
if (btnGarageNext !== null) {
btnGarageNext.removeEventListener('click', this.onButtonGarageNext);
}
if (btnGaragePrev !== null) {
btnGaragePrev.removeEventListener('click', this.onButtonGaragePrev);
}
if (menuBbtn !== null) {
menuBbtn.addEventListener('click', this.onButtonMenu.bind(this));
}
}
Но что-то мне так не нравится, я постоянно повторяю объявленные листенеры, а если их будет много .....
Подскажите плз., как лучше и правильно сделать удаление листенеров?