JavaScript-те анонимді функцияларды байланысты жою
Енді біздің абзацтарға анонимді функция байланған делік:
javascriptlet elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function() {
console.log(this.textContent);
});
}
Біз осы абзацқа басқаннан кейін оны жоққа шығарғымыз келеді делік. Бірақ бізді мәселе күтіп тұр: функцияның аты жоқ, демек біз оны жою үшін осы ат бойынша шақыра алмаймыз.
Мәселені шешу үшін функцияға атау беру керек, яғни оны атаулы функционалды өрнек етіп жасау керек. Мұны істейік:
javascriptlet elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() { // функцияға атау бердік
console.log(this.textContent);
});
}
Енді бұл функцияны оның ішінде жоюға болады:
javascriptlet elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // функцияны жоямыз
});
}
Задание 1
ul тізімі берілген, әрбір элементте
сан жазылған. Кез келген li элементіне
басқанда оның саны бірге артуы үшін жасаңыз.
Задание 2
Алдыңғы тапсырманы өзгертіп, әрбір
li элементі өз мәнін тек бірінші рет
басқанда ғана арттырсын.
Задание 3
Алдыңғы тапсырманы өзгертіп, әрбір
li элементі өз мәнін тек ол
10-нан кіші болғанда ғана арттырсын.