Détacher les événements en JavaScript

Dans cette leçon, nous apprendrons à détacher les gestionnaires d'événements qui avaient été précédemment attachés par nous aux éléments. Prenons par exemple le bouton suivant :

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

Attachons la fonction func à ce bouton :

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

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

Faisons maintenant en sorte que le gestionnaire d'événement se déclenche au premier clic, puis soit détaché du bouton. Pour cela, il existe une méthode spéciale removeEventListener. Cette méthode prend comme premier paramètre le type d'événement, et comme second - une référence à la fonction qui doit être détachée.

Généralement, cela signifie que le gestionnaire d'événement est détaché de la même manière qu'il a été attaché. C'est-à-dire que si nous l'avons attaché comme ceci : addEventListener('click', func), alors nous le détacherons avec les mêmes paramètres, comme ceci : removeEventListener('click', func).

Ainsi, résolvons la tâche que nous nous sommes fixée :

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

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

Donnés un lien et un bouton. Au clic sur le bouton, ajoutez à la fin du texte du lien le contenu de son attribut href entre parenthèses. Faites en sorte que cette addition ne se produise qu'au premier clic.

Задание 2

Donné un bouton, dont la valeur est le nombre 1. Faites en sorte qu'au clic sur ce bouton sa valeur augmente à chaque fois de un. Après que la valeur du bouton ait atteint 10 - détachez le gestionnaire d'événement afin que le bouton ne réagisse plus au clic.