LECCIÓN 55 / 60 · Calidad y responsabilidad

Retira una escucha cuando ya no hace falta

Al terminar, podrás: quitar una escucha cuando no hace falta

Ampliación opcionalNavegador / DOM

Conviene conocer: Lección 31 · Responde a un clic con addEventListener

La idea clave

Una función registrada como escucha puede dejar de ser necesaria. removeEventListener la elimina si le pasas el mismo nombre de función y el mismo tipo de evento.

Ejemplo paso a paso

Este ejemplo muestra la idea en acción. Sigue los pasos y después cámbialo tú.

Ejemplo explicado
const boton = document.querySelector('#accion');
function avisar() {
  document.querySelector('#saludo').textContent = 'Sigue activo';
}
boton.addEventListener('click', avisar);
document.querySelector('#desactivar').addEventListener('click', () => {
  boton.removeEventListener('click', avisar);
  document.querySelector('#saludo').textContent = 'Desactivado';
});
  1. avisar tiene nombre para poder reutilizar la misma referencia.
  2. addEventListener la conecta al primer botón.
  3. Al pulsar Desactivar, removeEventListener la desconecta; los clics posteriores no ejecutan avisar.

Practica con código

Antes de empezar, piensa: ¿Seguirá funcionando el primer botón después de pulsar Desactivar?

Cambia el mensaje de desactivación a «Desconectado». Pulsa Activar, luego Desactivar y de nuevo Activar: debe conservar ese estado.

El resultado que buscamos

El mensaje permanece en «Desactivado» tras el último clic.

HTML + CSS + JS Practica aquí
Tu misión

Cambia el mensaje de desactivación a «Desconectado». Pulsa Activar, luego Desactivar y de nuevo Activar: debe conservar ese estado.

Vista previa aislada · Sin acceso al sitio principal
Consola
Lista para ejecutar.
Sin comprobar
Escribe tu cambio y pulsa «Comprobar solución». Puedes intentarlo tantas veces como quieras.
Listo
Necesito una pista

Es importante pulsar los botones en ese orden.

Una pista más

La función avisar tiene que pasarse sin paréntesis a ambas operaciones.

Ver solución y explicación

Tras pulsar Desactivar, no vuelvas a registrar la escucha. El botón Activar ya no cambiará el mensaje.

Qué debes recordar: removeEventListener necesita la misma función que addEventListener.

Práctica pendiente de corregir

La lectura, las prácticas corregidas y las autoevaluaciones guiadas se guardan por separado en este navegador.

Revisado editorialmente · Referencia técnica específica ↗