⊗jsPmDmAHU 363 of 505 menu

Scollegamento di funzioni anonime in JavaScript

Supponiamo ora che ai nostri paragrafi sia collegata una funzione anonima:

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

Supponiamo di voler scollegare questa funzione dal paragrafo dopo il click su questo paragrafo. Tuttavia, ci aspettava un problema: la funzione non ha un nome, il che significa che non potremo riferirci ad essa con quel nome per scollegarla.

Per risolvere il problema, dobbiamo dare un nome alla funzione, trasformandola in un'espressione funzionale nominata. Facciamolo:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', function func() { // abbiamo dato un nome alla funzione console.log(this.textContent); }); }

Ora questa funzione può essere scollegata all'interno di se stessa:

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

Data una lista ul, in ogni elemento della quale è scritto un numero. Fate in modo che al click su qualsiasi li il suo numero venga aumentato di uno.

Modificate il problema precedente in modo che ogni li aumenti il proprio valore solo al primo click su di essa.

Modificate il problema precedente in modo che ogni li aumenti il proprio valore solo se il suo valore è minore di 10.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta