⊗jsPmOEBTE 424 of 505 menu

Die verkryging van die teikenelement tydens gebeurtenisborrel

Kom ons het twee elemente: div en 'n paragraaf p, wat binne hierdie div lê:

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

Laat ons 'n verwysing na ons div in 'n veranderlike kry:

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

Laat ons aan ons etikette 'n paar style voeg:

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

Laat daar nou 'n klikhanterer op die div geplaas wees:

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

Omdat ons div padding het, wanneer ons op die div klik, kan ons op die paragraaf tref, of ons kan op die plek tref waar hierdie paragraaf nie is nie, dit wil sê direk op die div.

Terselfdertyd sal this in die klikhanterer altyd verwys na die element waarop die hanterer geplaas is. In ons geval is dit ons div:

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

Ons kan eger die presiese etiket kry waarin die gebeurtenis plaasgevind het. Vir dit kan ons kyk wat in event.target lê:

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

Hierdie twee opsies kan onderskei word met behulp van voorwaardes:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.tagName === 'DIV') { console.log('kliek presies op die div'); } if (event.target.tagName === 'P') { console.log('kliek presies op die paragraaf'); } });

In plaas van tagName kan matches gebruik word:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.matches('div')) { console.log('kliek presies op die div'); } if (event.target.matches('p')) { console.log('kliek presies op die paragraaf'); } });

Die volgende elemente word gegee:

<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; }

Plaas 'n klikhanterer op die div. In hierdie hanterer, bepaal in watter van die etikette die gebeurtenis plaasgevind het.

Wysig die vorige taak. Maak dit sodat wanneer op li geklik word, 'n uitroepteken aan die einde daarvan gevoeg word, en wanneer op ul geklik word, inligting oor dit na die konsole uitgeskryf word.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp