⊗jsPmDmLHU 362 of 505 menu

Odstraňování obslužných rutin událostí ve smyčce v JavaScriptu

Nyní předpokládejme, že nemáme jeden prvek, ale několik. Například několik odstavců:

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

Připojme k každému z těchto odstavců funkci func jako obslužnou rutinu kliknutí:

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

Nyní kód upravme tak, aby každý odstavec reagoval pouze na první kliknutí na něj. K tomu při kliknutí na odstavec odebereme připojenou obslužnou rutinu. Toto odebrání se bude týkat konkrétně tohoto odstavce a nijak neovlivní ostatní.

Jak již víte, prvek, ve kterém došlo k události, lze v obslužné funkci získat pomocí this. To znamená, že je třeba provést odebrání obslužné rutiny z this, takto:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); this.removeEventListener('click', func); // odstraňujeme obslužnou rutinu }

Jsou dány odstavce. Po kliknutí na kterýkoli odstavec přidejte na jeho konec vykřičník. Zařiďte, aby k tomuto přidání docházelo pouze při prvním kliknutí.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout