Anonīmo funkciju atsaistīšana JavaScript
Pieņemsim, ka mūsu rindkopām tagad ir piesaistīta anonīma funkcija:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function() {
console.log(this.textContent);
});
}
Pieņemsim, ka mēs vēlamies atsaistīt šo funkciju no rindkopas pēc noklikšķināšanas uz šīs rindkopas. Tomēr mūs sagaida problēma: funkcijai nav nosaukuma, kas nozīmē, ka mēs nevarēsim piekļūt tai pēc šī nosaukuma, lai to atsaistītu.
Lai atrisinātu problēmu, funkcijai jāpiešķir nosaukums, pārvēršot to par nosauktu funkcionālo izteiksmi. Darīsim to:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() { // piešķīrām funkcijai nosaukumu
console.log(this.textContent);
});
}
Tagad šo funkciju var atsaistīt tajā pašā iekšienē:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // atsaistām funkciju
});
}
Dots saraksts ul, kurā katrā punktā ir
ierakstīts skaitlis. Pārliecinieties, ka, noklikšķinot
uz jebkuras li, tās skaitlis palielinās
par vienu.
Modificējiet iepriekšējo uzdevumu tā,
lai katra li palielinātu savu
vērtību tikai pēc pirmā nospiešanas
uz tās.
Modificējiet iepriekšējo uzdevumu tā,
lai katra li palielinātu savu
vērtību tikai tad, ja tās vērtība
mazāka par 10.