Odpájanie udalostí v JavaScripte

V tejto lekcii sa naučíme odpájať obsluhy udalostí, ktoré boli predtým pripojené nami k elementom. Nech je pre príklad daný nasledujúci tlačidlo:

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

Pripojme k tomuto tlačidlu funkciu func:

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

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

Urobme teraz tak, aby obsluha udalosti bola spustená na prvý klik, a potom sa odpojila od tlačidla. Na to existuje špeciálna metóda removeEventListener. Táto metóda ako prvý parameter prijíma typ udalosti, a ako druhý - odkaz na funkciu, ktorú treba odpojiť.

Spravidla to znamená, že obsluha udalosti sa odpojí tak, ako bola pripojená. To znamená, že ak sme ju pripojili takto: addEventListener('click', func), tak aj odpojíme s rovnakými parametrami, takto: removeEventListener('click', func).

Takže, vyriešme zadanú úlohu:

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

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

Daný odkaz a tlačidlo. Kliknutím na tlačidlo pridajte na koniec textu odkazu obsah jeho atribútu href v okrúhlych zátvorkách. Urobte tak, aby toto pridanie prebehlo iba pri prvom kliknutí.

Задание 2

Dané tlačidlo, ktorého hodnotou je číslo 1. Urobte tak, aby pri kliknutí na toto tlačidlo sa jeho hodnota zakaždým zvýšila o jednotku. Potom, čo hodnota tlačidla dosiahne 10 - odpojte obsluhu udalosti, aby tlačidlo už nereagovalo na kliknutie.