Sobes.tech
Junior

Como remover um manipulador de eventos?

sobes.tech IA

Resposta da IA

Existem três métodos principais:

  1. 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 com addEventListener().

    // 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);
    
  2. 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;
    
  3. Usar removeListener() (Node.js): Aplicável para manipulação de eventos em ambientes Node.js (por exemplo, para instâncias de EventEmitter).

    // 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á.