⊗jsPmOEBTE 424 of 505 menu

Hadiselerin qalxmasinda hedef elementin alinmasi

Tutaq ki, bizim iki elementimiz var: div və bu div-in içinde olan abzas p:

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

Div-ə istinadımızı dəyişəndə alaq:

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

Teqlərimizə bəzi stillər əlavə edək:

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

İndi isə div-ə klik hadisesi üçün emeliyyatçı əlavə edək:

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

Div-imizin padding olduğuna görə, div-ə klik etdiyimiz zaman biz ya abzasa klik edə bilərik, ya da abzasın olmadığı yere, yəni birbaşa div-ə klik edə bilərik.

Bununla belə, klik emeliyyatçısında this həmişə emeliyyatçının əlavə edildiyi elementi göstərəcək. Bizim veziyyetimizde bu bizim div-imizdir:

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

Ancaq, biz hadisenin baş verdiyi dəqiq teqi ala bilərik. Bunun üçün biz event.target-da nə olduğuna baxa bilərik:

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

Bu iki variantı şərtlər vasitəsilə fərqləndirmək olar:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.tagName === 'DIV') { console.log('klik birbaşa div-ə'); } if (event.target.tagName === 'P') { console.log('klik birbaşa abzasa'); } });

tagName əvəzinə matches istifadə etmək olar:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.matches('div')) { console.log('klik birbaşa div-ə'); } if (event.target.matches('p')) { console.log('klik birbaşa abzasa'); } });

Aşağıdakı elementlər verilib:

<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-ə klik emeliyyatçısı əlavə edin. Bu emeliyyatçıda hadisənin hansı teqde baş verdiyini müəyyən edin.

Əvvəlki məsələni modifikasiya edin. Elə edin ki, li-yə klik edəndə, onun sonuna nida işarəsi əlavə olunsun, ul-a klik edəndə isə konsola bu haqqda informasiya çıxsın.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et