⊗jsPmDmLNH 359 of 505 menu

Sündmuste lisamine tsüklis JavaScriptis

Õpime nüüd, kuidas lisada elementidele sündmuste töötlejaid hulgi. Oletame näiteks, et meil on lõigud:

<p>text1</p> <p>text2</p> <p>text3</p>

Oletame, et meil on ka funktsioon:

function func() { console.log('!'); }

Läbime oma lõigud tsüklis ja lisame igale lõigule klikk sündmuse töötlejana funktsiooni func:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); }

Lähme edasi ja teeme nii, et mis tahes lõigu peale klõpsates kuvataks selle lõigu tekst. Siiski on probleem: lõike on palju, kuid töötleja funktsioon on üks. Kuidas me saame oma lõike töötleja funktsiooni sees eristada?

Selles aitab meil objekt this - kui funktsiooni kutsutakse sündmuse toimumise hetkel, siis see objekt viitab sellele elemendile, kus see sündmus toimus. Muudame oma funktsiooni func koodi vastavalt öeldule:

function func() { console.log(this.textContent); // kuvame lõigu teksti }

Antud on järgmine funktsioon:

function func() { this.value = Number(this.value) + 1; }

Samuti on antud input väljad. Tehke nii, et kui mis tahes meie input väljal kaob fookus, käivitataks ülal toodud funktsioon.

Antud on lõigud numbritega. Tehke nii, et mis tahes lõigu peale klõpsates ruudustatakse selles olev number.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu