Junior
Como remover um manipulador de eventos?
sobes.tech IA
Resposta da IA
Existem três métodos principais:
-
Usar
removeEventListener(): A forma mais comum e recomendada. Requer passar os mesmos argumentos (tipo de evento, função manipuladora e opções) que ao adicionar comaddEventListener().// Exemplo de adição const element = document.getElementById('myElement'); const handler = () => { console.log('Clicado'); }; element.addEventListener('click', handler); // Exemplo de remoção element.removeEventListener('click', handler); -
Atribuir
nullà propriedade do evento: Funciona apenas para manipuladores inline e aqueles atribuídos através de propriedades do objeto (por exemplo,onclick).// Adicionando via propriedade const element = document.getElementById('myElement'); element.onclick = () => { console.log('Clicado'); }; // Removendo element.onclick = null; -
Usar
removeListener()(Node.js): Aplicável para manipulação de eventos em ambientes Node.js (por exemplo, para instâncias deEventEmitter).// Exemplo no Node.js const { EventEmitter } = require('events'); const myEmitter = new EventEmitter(); const handler = () => { console.log('Evento ocorrido'); }; myEmitter.on('myEvent', handler); // Adicionar myEmitter.removeListener('myEvent', handler); // Remover
É importante passar a mesma referência da função manipuladora ao usar removeEventListener e removeListener. Passar uma função anônima ou uma nova função com o mesmo conteúdo não funcionará.