⊗jsPmOEBTE 424 of 505 menu

Hodisalar ko'tarilishida maqsadli elementni olish

Faraz qilaylik, bizda ikkita element bor: div va shu div ichida joylashgan p abzasi:

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

Keling, divimizga havolani o'zgaruvchiga olaylik:

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

Keling, teglarimizga ba'zi uslublarni qo'shamiz:

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

Endi faraz qilaylik, divga bosish ishlovchisi qo'shilgan:

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

Divimizda padding bo'lgani sababli, divni bosganimizda, biz abzas ustiga bosa olamiz, yoki abzas bo'lmagan joyga, ya'ni to'g'ridan-to'g'ri div ustiga bosa olamiz.

Bunda bosish ishlovchisida this har doim ishlovchi bog'langan elementni ko'rsatadi. Bizning holatda bu divimiz:

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

Biroq, biz aynan hodisa yuz bergan tegni olishimiz mumkin. Buning uchun event.target da nima yotganini ko'rib chiqishimiz mumkin:

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

Bu ikkita variantni shartlar yordamida farqlash mumkin:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.tagName === 'DIV') { console.log('bosish aynan div ustida'); } if (event.target.tagName === 'P') { console.log('bosish aynan abzas ustida'); } });

tagName o'rniga matches dan foydalanish mumkin:

let div = document.querySelector('div'); div.addEventListener('click', function(event) { if (event.target.matches('div')) { console.log('bosish aynan div ustida'); } if (event.target.matches('p')) { console.log('bosish aynan abzas ustida'); } });

Quyidagi elementlar berilgan:

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

Divga bosish ishlovchisini qo'shing. Ushbu ishlovchida hodisa qaysi tegda ishlaganligini aniqlang.

Oldingi vazifani o'zgartiring. Shunday qilingki, li ustiga bosilganda, uning oxiriga undov belgisi qo'shilsin, ul ustiga bosilganda esa konsolga bu haqida ma'lumot chiqarilsin.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish