⊗jsPmOEBTE 424 of 505 menu

Olayların Kabarcıklanmasında Hedef Elemanın Elde Edilmesi

Elimizde iki eleman olsun: div ve bu div'in içinde bulunan p paragrafı:

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

Div'imizin referansını bir değişkene alalım:

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

Etiketlerimize bazı stiller ekleyelim:

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

Şimdi div'e bir tıklama olay dinleyicisi ekleyelim:

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

Div'imizin padding'i olduğu için, div'e tıkladığımızda, ya paragrafın üzerine ya da paragrafın olmadığı, doğrudan div'in kendisine tıklamış olabiliriz.

Bu durumda, tıklama olay dinleyicisinde this her zaman olay dinleyicisinin bağlandığı elemanı gösterecektir. Bizim durumumuzda bu, div'imizdir:

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

Ancak, olayın tam olarak hangi etikette meydana geldiğini öğrenebiliriz. Bunun için event.target içinde ne olduğuna bakabiliriz:

div.addEventListener('click', function(event) { console.log(event.target); // ya div ya da paragraf });

Bu iki durumu koşullar kullanarak ayırt edebiliriz:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.tagName === 'DIV') { console.log('tıklama doğrudan div üzerinde'); } if (event.target.tagName === 'P') { console.log('tıklama doğrudan paragraf üzerinde'); } });

tagName yerine matches kullanılabilir:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.matches('div')) { console.log('tıklama doğrudan div üzerinde'); } if (event.target.matches('p')) { console.log('tıklama doğrudan paragraf üzerinde'); } });

Aşağıdaki elemanlar verilmiştir:

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

Div'e bir tıklama olay dinleyicisi ekleyin. Bu olay dinleyicisinde, olayın hangi etikette tetiklendiğini belirleyin.

Önceki görevi değiştirin. li'ye tıklandığında, sonuna bir ünlem işareti eklenmesini, ul'ye tıklandığında ise konsola bu durumla ilgili bilgi yazılmasını sağlayın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet