Įvykių doroklių atjungimas cikle JavaScript
Tarkime, kad dabar turime ne vieną elementą, o kelis. Pavyzdžiui, kelis paragrafus:
<p>text1</p>
<p>text2</p>
<p>text3</p>
Prie kiekvieno iš šių paragrafų pririškime
klikimo doroklio funkciją func:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', func);
}
function func() {
console.log(this.textContent);
}
Dabar pakeiskime kodą taip, kad kiekvienas paragrafas reaguotų tik į pirmąjį paspaudimą ant jo. Tam, paspaudus ant paragrafo, atjungsime nuo jo pririštą doroklį. Atjungimas bus konkretus nuo šio paragrafo, neliesdamas kitų.
Kaip jau žinote, elementą, kuriame įvyko
įvykis, galima gauti doroklio funkcijoje
per this. Tai reiškia, kad reikia
atlikti doroklio atjungimą nuo this,
štai taip:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', func);
}
function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // atjungiame doroklį
}
Duoti paragrafai. Paspaudus bet kurį iš paragrafų pridėkite jam į galą šauktuką. Padarykite taip, kad šis pridėjimas vyktų tik pirmuoju paspaudimu.