⊗jsPmDmAHU 363 of 505 menu

Odvezovanje anonimnih funkcij v JavaScript

Recimo, da je na naše odstavke vezana anonimna funkcija:

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

Recimo, da želimo odvezati to funkcijo od odstavka po kliku na ta odstavek. Vendar nas čaka težava: funkcija nima imena, kar pomeni da se je ne bomo mogli sklicevati po tem imenu, da bi jo odvezali.

Za rešitev težave je treba funkciji dati ime, in jo spremeniti v poimenovani funkcionalni izraz. Naredimo to:

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

Zdaj lahko to funkcijo odvežemo znotraj nje same:

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

Podan seznam ul, v vsaki točki katerega je zapisano število. Naredite tako, da ob kliku na katero koli li se njena številka poveča za ena.

Spremenite prejšnjo nalogo tako, da vsaka li poveča svojo vrednost le ob prvem pritisku nanjo.

Spremenite prejšnjo nalogo tako, da vsaka li poveča svojo vrednost le, če je njena vrednost manjša od 10.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni