How can you remove the event listeners from this element without calling removeEventListener?
const element = document.querySelector('button');
element.addEventListener('click', () => {
console.log('clicked');
});
element.addEventListener('mouseover', () => {
console.log('hovered');
});
element.addEventListener('mouseout', () => {
console.log('unhovered');
});
element.addEventListener('focus', () => {
console.log('focused');
});
You can use an AbortController to remove all the event listeners at once. When passed a signal as an option, the event listener will be removed when the AbortSignal’s abort() method is called.
const controller = new AbortController();
const { signal } = controller;
element.addEventListener('click', () => {
console.log('clicked');
}, { signal });
element.addEventListener('mouseover', () => {
console.log('hovered');
}, { signal });
element.addEventListener('mouseout', () => {
console.log('unhovered');
}, { signal });
element.addEventListener('focus', () => {
console.log('focused');
}, { signal });
controller.abort();
Note: Older browsers may not support the options parameter for addEventListener, but it is supported in all modern browsers.