Desvinculación de eventos en JavaScript

En esta lección aprenderemos a desvincular manejadores de eventos que previamente habíamos vinculado a elementos. Supongamos como ejemplo que tenemos el siguiente botón:

html<input id="button" type="submit">

Vinculemos a este botón la función func:

javascriptlet button = document.querySelector('#button');
button.addEventListener('click', func);

function func() {
  console.log('!!!');
}

Ahora hagamos que el manejador del evento se active en el primer clic, y luego se desvincule del botón. Para esto existe un método especial removeEventListener. Este método acepta como primer parámetro el tipo de evento, y como segundo - una referencia a la función que necesita ser desvinculada.

Generalmente, esto significa que el manejador del evento se desvincula de la misma manera que se vinculó. Es decir, si lo vinculamos así: addEventListener('click', func), entonces lo desvincularemos con los mismos parámetros, así: removeEventListener('click', func).

Entonces, resolvamos la tarea que nos hemos propuesto:

javascriptlet button = document.querySelector('#button');
button.addEventListener('click', func);

function func() {
  console.log('!!!');
  this.removeEventListener('click', func);
}
Задание 1

Se da un enlace y un botón. Al hacer clic en el botón, agregue al final del texto del enlace el contenido de su atributo href entre paréntesis. Haga que esta adición ocurra solo en el primer clic.

Задание 2

Se da un botón, cuyo valor es el número 1. Haga que al hacer clic en este botón su valor aumente en uno cada vez. Después de que el valor del botón alcance 10 - desvincule el manejador del evento para que el botón ya no reaccione al clic.