Įvykių atjungimas JavaScript

Šioje pamokoje išmoksime atjungti įvykių tvarkytuvus, kurie anksčiau buvo prijungti prie elementų. Tarkime, pavyzdžiui, duotas toks mygtukas:

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

Prijungkime prie šio mygtuko funkciją func:

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

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

Dabar padarykime taip, kad įvykio tvarkytuvas veiktų pirmuoju paspaudimu, o vėliau atsijungtų nuo mygtuko. Tam yra specialus metodas removeEventListener. Šis metodas pirmu parametru priima įvykio tipą, o antruoju - nuorodą į funkciją, kurią reikia atjungti.

Paprastai tai reiškia, kad įvykio tvarkytuvas atjungiamas taip pat, kaip ir buvo prijungtas. Tai yra, jei mes jį prijungėme taip: addEventListener('click', func), tai ir atjungsime tais pačiais parametrais, taip: removeEventListener('click', func).

Taigi, išspręskime užduotį, kurią sau uždėjome:

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

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

Duota nuoroda ir mygtukas. Paspaudus mygtuką, pridėkite į nuorodos teksto pabaigą jos atributo href turinį round skliausteliuose. Padarykite taip, kad šis pridėjimas vyktų tik pirmuoju paspaudimu.

Задание 2

Duotas mygtukas, kurio reikšmė yra skaičius 1. Padarykite taip, kad paspaudus šį mygtuką, jo reikšmė kaskart didėtų vienetu. Po to, kai mygtuko reikšmė pasieks 10 - atjunkite įvykio tvarkytuvą, kad mygtukas daugiau nereaguotų į paspaudimą.