Իվենթների մշակիչների անջատում ցիկլում JavaScript-ում

Ենթադրենք, հիմա մենք ունենք ոչ թե մեկ տարր, այլ մի քանիսը: Օրինակ, մի քանի պարբերություններ:

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

Եկեք այս պարբերություններից յուրաքանչյուրին կլիկի մշակիչով կցենք func ֆունկցիան:

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

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

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

Հիմա եկեք փոխենք կոդն այնպես, որ յուրաքանչյուր պարբերություն արձագանքի միայն առաջին դրա վրա կատարված կլիկին: Դրա համար պարբերության վրա կլիկ անելիս մենք կանջատենք դրան կցված մշակիչը: Այս դեպքում անջատումը կկատարվի հենց այս պարբերությունից, առանց մյուսներին դիպչելու:

Ինչպես արդեն գիտեք, այն տարրը, որում տեղի է ունեցել իրադարձությունը, կարելի է ստանալ մշակիչ ֆունկցիայի ներսում this-ի միջոցով: Սա նշանակում է, որ պետք է կատարել մշակիչի անջատում this-ից, ահա այսպես:

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

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

function func() {
  console.log(this.textContent);
  this.removeEventListener('click', func); // անջատում ենք մշակիչը
}
Задание 1

Տրված են պարբերություններ: Ցանկացած պարբերության վրա կլիկ անելիս ավելացրեք դրա վերջում բացականչական նշան: Կարգավորեք այնպես, որ այս ավելացումը տեղի ունենա միայն առաջին կլիկի դեպքում: