Odvazování událostí v JavaScriptu

V této lekci se naučíme odvazovat obslužné rutiny událostí, které byly dříve navázány nami na elementy. Nechť pro příklad je dáno následující tlačítko:

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

Přivažme k tomuto tlačítku funkci func:

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

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

Pojďme nyní udělat to, aby obslužná rutina události reagovala na první kliknutí, a poté se odvázala od tlačítka. K tomu existuje speciální metoda removeEventListener. Tato metoda přijímá jako první parametr typ události a jako druhý - odkaz na funkci, kterou je třeba odvázat.

Zpravidla to znamená, že obslužná rutina události se odvazuje stejně, jako byla navázána. To znamená, že pokud jsme ji navázali takto: addEventListener('click', func), pak ji také odvážeme se stejnými parametry, takto: removeEventListener('click', func).

Takže, vyřešme zadaný úkol:

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

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

Je dána odkaz a tlačítko. Po stisknutí tlačítka přidejte na konec textu odkazu obsah jeho atributu href v kulatých závorkách. Zařiďte, aby toto přidání proběhlo pouze při prvním stisknutí.

Задание 2

Je dáno tlačítko, jehož hodnotou je číslo 1. Zařiďte, aby po kliknutí na toto tlačítko se jeho hodnota pokaždé zvýšila o jednu. Poté, co hodnota tlačítka dosáhne 10 - odvažte obslužnou rutinu události, aby tlačítko dále nereagovalo na stisknutí.