JavaScript-de döwürde hadysa işleýjilerini aýyrmak
Indi bir element däl-de, birnäçe element bolsun. Mysal üçin, birnäçe abzas:
<p>text1</p>
<p>text2</p>
<p>text3</p>
Gelin, bu abzaslaryň her birine çyklamanyň hadysa işleýjisi
arkaly func funksiýasyny baglalyň:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', func);
}
function func() {
console.log(this.textContent);
}
Indi kody şeýle üýtgetmeli, her bir abzas diňe ona birinji gezek basylanda jogap bersin. Bunun üçin abzasa basylanynda, oňa baglanan işleýjini aýyrmaly. Şu ýerde aýyrmak diňe şu abzasdan bolmaly, galanlaryna täsir etmeli däl.
Bilşiňiz ýaly, hadysanyň ýüze çykan elementini
funksiýa-işleýjide this arkaly almak bolýar.
Bu bolsa, işleýjini this-den aýyrmaly diýýän manyny
berýär, şeýle:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', func);
}
function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // işleýjini aýyrýarys
}
Abzaslar berlen. Islendik abzasa basylanynda, oňa soňunda ünlem belgisini goşuň. Bu goşmagyň diňe birinji basylyşda bolýandygyny ýerine ýetiriň.