⊗jsPmDmAHU 363 of 505 menu

Odvazování anonymních funkcí v JavaScriptu

Nyní předpokládejme, že k našim odstavcům je přivázána anonymní funkce:

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

Předpokládejme, že chceme odvázat tuto funkci od odstavce po kliknutí na tento odstavec. Čeká nás však problém: funkce nemá název, a proto se na ni nemůžeme odvolat jejím jménem, abychom ji odváželi.

K vyřešení problému je třeba funkci pojmenovat, čímž z ní vytvoříme pojmenovaný funkční výraz. Udělejme to:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', function func() { // dali jsme funkci jméno console.log(this.textContent); }); }

Nyní lze tuto funkci odvázat uvnitř ní samotné:

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

Je dán seznam ul, v jehož každé položce je zapsáno číslo. Zařiďte, aby po kliku na libovolné li se její číslo zvýšilo o jedničku.

Upravte předchozí úlohu tak, aby každé li zvýšilo svou hodnotu pouze po prvním stisknutí na něj.

Upravte předchozí úlohu tak, aby každé li zvýšilo svou hodnotu pouze v případě, že její hodnota je menší než 10.

Č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