⊗jsPmDmLHU 362 of 505 menu

Îndepărtarea handlerelor de evenimente într-o buclă în JavaScript

Să presupunem că acum avem nu un singur element, ci mai multe. De exemplu, mai multe paragrafe:

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

Să atașăm fiecăruia dintre aceste paragrafe funcția func ca handler de click:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); }

Acum să modificăm codul astfel încât fiecare paragraf să reacționeze doar la prima apăsare pe el. Pentru aceasta, la click pe paragraf vom îndepărta handler-ul atașat acestuia. În același timp, îndepărtarea se va face specific de la acest paragraf, fără a afecta celelalte.

După cum știți deja, elementul în care a avut loc evenimentul poate fi obținut în funcția-handler prin this. Aceasta înseamnă că este necesar să executăm îndepărtarea handler-ului de la this, astfel:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); this.removeEventListener('click', func); // îndepărtăm handler-ul }

Sunt date paragrafe. La apăsarea pe orice paragraf adăugați-i la sfârșit semnul exclamării. Faceți astfel încât această adăugare să aibă loc doar la prima apăsare.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge