Удаление прослушивания события
Здравствуйте, столкнулся с такой проблемой.
Я понимаю, что через removeEventListener можно удалить события, который мы установили через addEventListener.
Но там же есть нюанс, что туда мы передаём функцию:
Ну то есть, если бы писали так:
cell.addEventListener(‘click’, someFunc)
......
cell.removeEventListener(‘click’, someFunc)
Тогда да, оно бы сработало.
Но если будет анонимная функция, то мы не сможем удалить(например)
cell.addEventListener(‘click’, ()=> console.log(‘hello world’))
......
cell.removeEventListener(‘click’, ....?) // тут уже без вариантов
———————————-
Но как поступить, если в ту функцию, которую мы должны выполнять при триггере события, нам нужно передать ещё параметр
Ну то есть:
cell.addEventListener(‘click’, func(param))
Так не сработает(просто сразу же выполнится)
Можно например сделать так:
cell.addEventListener(‘click’, () => func(param)) чтобы переедать параметр
Но как в таком случае нет возможности удалить прослушивание.
Может есть какой-то способ, чтобы я мог и передавать параметры в функцию колбэка
Но и потом смог удалить прослушивание этого события.
|