JavaScript-də dövr içində hadise emalçılarının ayrılması

İndi tutaq ki, bir deyil, bir neçə element var. Məsələn, bir neçə abzas:

html<p>text1</p>
<p>text2</p>
<p>text3</p>

Gəlin bu abzasların hər birinə klik hadisesi emalçısı ilə func funksiyasını bağlayaq:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', func);
}

function func() {
  console.log(this.textContent);
}

İndi gəlin kodu elə dəyişək ki, hər abzas yalnız ona edilən ilk klikə reaksiya versin. Bunun üçün abzaza klik edəndə ona bağlanmış emalçını ayıracağıq. Eyni zamanda, ayrılma xüsusi olaraq bu abzasdan olacaq, digərlərini heç cür etkilemeyecek.

Artıq bildiyiniz kimi, hadisenin baş verdiyi elementi emalçı funksiyasında this vasitəsilə əldə etmək olar. Bu o deməkdir ki, emalçını this-dən ayırmağı yerinə yetirmək lazımdır, burada olduğu kimi:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', func);
}

function func() {
  console.log(this.textContent);
  this.removeEventListener('click', func); // emalçını ayırırıq
}
Задание 1

Abzaslar verilmişdir. İstənilən abzasa klik edəndə onun sonuna nida işareti əlavə edin. Elə edin ki, bu əlavə etmə yalnız ilk klikdə baş versin.