Odvajanje događaja u JavaScript-u

U ovoj lekciji ćemo naučiti kako da odvojimo rukovaoce događaja koji su ranije bili povezani sa elementima. Na primer, neka je data sledeće dugme:

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

Povežimo funkciju func sa ovim dugmetom:

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

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

Hajde sada da učinimo tako da rukovalac događaja bude aktiviran na prvi klik, a zatim da se odvoji od dugmeta. Za to postoji specijalna metoda removeEventListener. Ova metoda kao prvi parametar prima tip događaja, a kao drugi - referencu na funkciju koju treba odvojiti.

Obično to znači da se rukovalac događaja odvaja na isti način na koji je i bio povezan. To jest, ako smo ga povezali ovako: addEventListener('click', func), onda ćemo ga i odvojiti sa istim parametrima, ovako: removeEventListener('click', func).

Dakle, rešimo zadat koji smo postavili:

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

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

Data su link i dugme. Klikom na dugme dodajte na kraj teksta linka sadržaj njegovog atributa href u oblim zagradama. Učinite tako da se ovo dodavanje dešava samo pri prvom kliku.

Задание 2

Data je dugme, čija je vrednost broj 1. Učinite tako da pri kliku na ovo dugme njegova vrednost svaki put povećava za jedan. Nakon što vrednost dugmeta dostigne 10 - odvojite rukovaoca događaja, tako da dugme više ne reaguje na pritisak.