⊗jsPmDmLHU 362 of 505 menu

Ontkoppelen van event handlers in een lus in JavaScript

Stel dat we nu niet één element hebben, maar meerdere. Bijvoorbeeld, meerdere alinea's:

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

Laten we aan elk van deze alinea's via een event handler voor klikken de functie func binden:

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

Laten we de code nu aanpassen zodat elke alinea alleen reageert op de eerste klik erop. Hiervoor zullen we bij het klikken op een alinea de gebonden handler ervan ontkoppelen. Hierbij zal het ontkoppelen specifiek voor deze alinea zijn, zonder de anderen te beïnvloeden.

Zoals je al weet, kan het element waarin de gebeurtenis plaatsvond, in de handler-functie worden verkregen via this. Dit betekent dat we het ontkoppelen van de handler van this moeten uitvoeren, zoals hier:

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

Er zijn alinea's gegeven. Voeg bij het klikken op een alinea een uitroepteken toe aan het einde ervan. Zorg ervoor dat deze toevoeging alleen bij de eerste klik plaatsvindt.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren