⊗jsPmDmLHU 362 of 505 menu

Tapahtumankäsittelijöiden irrottaminen silmukassa JavaScriptissä

Oletetaan nyt, että meillä ei ole vain yksi elementti, vaan useita. Esimerkiksi useita kappaleita:

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

Liitetään kuhunkin näistä kappaleista napsautuksen käsittelijäfunktiolla funktio func:

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

Muutetaan nyt koodia niin, että jokainen kappale reagoi vain ensimmäiseen painallukseen. Tätä varten irrotamme kappaleesta kiinnitetyn käsittelijän napsautettaessa. Tällöin irrottaminen koskee tarkalleen tätä kappaletta, eikä vaikuta muihin.

Kuten jo tiedät, elementin, jossa tapahtuma tapahtui, voi saada käsittelijäfunktiossa läpi this:n. Tämä tarkoittaa, että käsittelijän irrottaminen tulee suorittaa this:stä, näin:

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

Annettu kappaleita. Paina mitä tahansa kappaleista lisää sen loppuun huutomerkki. Tee niin, että tämä lisäys tapahtuu vain ensimmäisellä painalluksella.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää