Откачивање догађаја у JavaScript-у

У овом лекцији ћемо научити како да откачимо руковаоце догађаја, који су раније били везани за елементе. На пример, нека нам је дато следеће дугме:

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

Вежимо за ово дугме функцију func:

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

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

Хајде сада да урадимо тако да се руковалац догађаја активира на први клик, а затим се откачи од дугмета. За ово постоји специјална метода removeEventListener. Ова метода као први параметар прима тип догађаја, а као други - референцу на функцију коју треба откачити.

У принципу, то значи да се руковалац догађаја откачује на исти начин на који је и везан. То јест, ако смо га везали овако: addEventListener('click', func), онда ћемо га и откачити са истим параметрима, овако: removeEventListener('click', func).

Дакле, решимо постављени задатак:

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

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

Дата су линк и дугме. Притиском на дугме додајте на крај текста линка садржај његовог атрибута href у заградама. Направите тако, да се ово додавање дешава само при првом притиску.

Задание 2

Дато је дугме, чија је вредност број 1. Направите тако да при клику на ово дугме његова вредност сваки пут повећа се за један. Након што вредност дугмета достигне 10 - откачите руковаоца догађаја, тако да дугме више не реагује на притисак.