⊗jsPmDmLHU 362 of 505 menu

Notikumu apstrādātāju atvienošana cilpā JavaScript

Tagad pieņemsim, ka mums ir nevis viens elements, bet vairāki. Piemēram, vairāki rindkopas:

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

Pievienosim katrai no šīm rindkopām ar klikšķa notikuma apstrādātāju funkciju func:

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

Tagad pārveidosim kodu tā, lai katra rindkopa reaģētu tikai uz pirmo uz to noklikšķināšanu. Lai to izdarītu, noklikšķinot uz rindkopas, mēs atvienosim no tās piesaistīto apstrādātāju. Šajā gadījumā atvienošana notiks konkrēti no šīs rindkopas, neietekmējot pārējās.

Kā jūs jau zināt, elementu, kurā noticis notikums, var iegūt apstrādātāja funkcijā caur this. Tas nozīmē, ka ir jāveic apstrādātāja atvienošana no this, šeit šādi:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); this.removeEventListener('click', func); // atvienojam apstrādātāju }

Dotas rindkopas. Noklikšķinot uz jebkuras rindkopas, pievienojiet tai beigās izsaukuma zīmi. Izdariet tā, lai šī pievienošana notiktu tikai pirmo reizi noklikšķinot.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt