⊗jsPmOEEB 423 of 505 menu

JavaScript-də hadisələrin qalxması

Təsəvvür edin ki, sizin bir-birinizin içinə daxil edilmiş bir neçə blokunuz var:

<div id="elem1"> <div id="elem2"> <div id="elem3"></div> </div> </div>

Div-lərimizə istinadları dəyişənlərə əldə edək:

let elem1 = document.querySelector('#elem1'); let elem2 = document.querySelector('#elem2'); let elem3 = document.querySelector('#elem3');

İndi isə onların üzərinə klik hadisəsi işləyiciləri əlavə edək:

elem1.addEventListener('click', function() { alert('yaşıl'); }); elem2.addEventListener('click', function() { alert('mavi'); }); elem3.addEventListener('click', function() { alert('qırmızı'); });

Bloklarımıza bir az CSS əlavə edərək, onları ekranda çıxaraq:

İndi ən daxili qırmızı bloka klik edin - və görəcəksiniz ki, hadisə əvvəlcə qırmızı blokda, sonra mavidə, sonra isə yaşıl blokda işləyəcək. Və bu məntiqlidir, çünki daxili bloka klik edərkən, eyni zamanda bütün xarici bloklara da klik etmiş olursunuz.

Yəni belə olur ki, ən daxili bloka klik edəndə, klik hadisəsi əvvəlcə orada yaranır, sonra onun valideynində işləyir, onun valideyninin valideynində və s., nəhayət, ən yuxarıya çatana qədər davam edir.

Bu davranışa hadisələrin qalxması (bubbling) deyilir - havadan qabarcığın dibdən qalxmasına bənzətmə ilə. Eyni qabarcıq kimi, bizim hadisəmiz də yuxarı qalxır kimi, hər dəfə daha yüksək bloklarda işləyir.

Müstəqil olaraq hadisələrin qalxmasını nümayiş etdirən kodu yazın. Müxtəlif tipli hadisələrin qalxmasını onun üzərində yoxlayın.

Bütün hadisələr qalxa bilməz. Təcrübi olaraq qalxmayan ən azı bir hadisə tapı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