⊗jsPmOEBTE 424 of 505 menu

Pridobivanje ciljnega elementa pri bubblingu dogodkov

Recimo, da imamo dva elementa: div in odstavek p, ki leži znotraj tega div:

<div> <p></p> </div>

Pridobimo referenco na naš div v spremenljivko:

let div = document.querySelector('div');

Dodajmo našim oznakam nekaj stilov:

div { padding: 20px; border: 1px solid red; } p { width: 200px; height: 200px; border: 1px solid green; }

Recimo, da je na div dodan ročevalec klika:

div.addEventListener('click', function() { console.log('click'); });

Ker ima naš div padding, lahko, ko kliknemo na div, zadeli odstavek, ali pa lahko zadenemo mesto, kjer tega odstavka ni, torej neposredno na div.

V tem primeru bo this v ročevalcu klika vedno kazal na element, na katerega je dodan ročevalec. V našem primeru je to naš div:

div.addEventListener('click', function() { console.log(this); // div });

Vendar lahko dobimo točno tisto oznako, v kateri se je zgodil dogodek. Za to lahko pogledamo, kaj je v event.target:

div.addEventListener('click', function(event) { console.log(event.target); // ali div, ali odstavek });

Ti dve možnosti lahko razlikujemo s pomočjo pogojev:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.tagName === 'DIV') { console.log('klik točno na div'); } if (event.target.tagName === 'P') { console.log('klik točno na odstavek'); } });

Namesto tagName lahko uporabimo matches:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.matches('div')) { console.log('klik točno na div'); } if (event.target.matches('p')) { console.log('klik točno na odstavek'); } });

Podani so naslednji elementi:

<div> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> </div> div, ul, li { padding: 20px; } div { border: 1px solid red; } ul { border: 1px solid orange; } li { border: 1px solid green; }

Dodajte na div ročevalec klika. V tem ročevalcu določite, v kateri od oznak se je sprožil dogodek.

Spremenite prejšnjo nalogo. Naredite tako, da se ob kliku na li, na konec doda klicaj, ob kliku pa na ul se v konzolo izpiše informacija o tem.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni