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.