Junior
Como remover um ouvinte de evento?
sobes.tech IA
Resposta da IA
Para remover um manipulador de eventos, utiliza-se o método removeEventListener(). Este método aceita os mesmos três argumentos que addEventListener():
- Tipo de evento (string, por exemplo
'click','mouseover'). - Referência para a função manipuladora que foi atribuída.
- Objeto opcional ou valor booleano indicando a fase (captura ou bubbling). Deve coincidir com o usado na adição.
Importante: para remover com sucesso, é necessário passar a mesma referência de função que foi usada na adição. Funções anónimas criadas "em tempo real" não podem ser removidas desta forma.
Exemplo:
// Obter o elemento
const element = document.getElementById('myButton');
// Definir a função manipuladora
function handleClick() {
console.log('Botão pressionado!');
}
// Adicionar manipulador
element.addEventListener('click', handleClick);
// ...algum código...
// Remover manipulador
element.removeEventListener('click', handleClick);
Se o manipulador foi adicionado com opções, por exemplo useCapture: true, também deve ser especificado na remoção:
element.addEventListener('click', handleClick, { capture: true });
// ...
element.removeEventListener('click', handleClick, { capture: true });
Se ao adicionar o terceiro argumento foi omitido (valor padrão false), também pode ser omitido na remoção ou usar false:
element.addEventListener('click', handleClick); // useCapture: false por padrão
// ...
element.removeEventListener('click', handleClick);
element.removeEventListener('click', handleClick, false); // equivalente ao acima