⊗jsPmDmAHU 363 of 505 menu

Odłączanie anonimowych funkcji w JavaScript

Załóżmy teraz, że do naszych akapitów jest podpięta anonimowa funkcja:

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

Załóżmy, że chcemy odłączyć tę funkcję od akapitu po kliknięciu w ten akapit. Czeka nas jednak problem: funkcja nie ma nazwy, a więc nie będziemy mogli odwołać się do niej po tej nazwie, aby ją odłączyć.

Aby rozwiązać problem, należy nadać funkcji nazwę, zamieniając ją w wyrażenie funkcyjne nazwane. Zróbmy to:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', function func() { // nadaliśmy nazwę funkcji console.log(this.textContent); }); }

Teraz tę funkcję można odłączyć wewnątrz niej samej:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', function func() { console.log(this.textContent); this.removeEventListener('click', func); // odłączamy funkcję }); }

Dana jest lista ul, w której każdy punkt zawiera liczbę. Spraw, aby po kliknięciu na dowolny element li jego liczba zwiększała się o jeden.

Zmodyfikuj poprzednie zadanie tak, aby każdy element li zwiększał swoją wartość tylko po pierwszym naciśnięciu na niego.

Zmodyfikuj poprzednie zadanie tak, aby każdy element li zwiększał swoją wartość tylko wtedy, gdy jej wartość jest mniejsza od 10.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć