⊗jsPmOEEB 423 of 505 menu

Իվենթների բաբլում JavaScript-ում

Պատկերացրեք, որ ունեք մի քանի մեկը մյուսի մեջ ներդրված բլոկներ.

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

Ստացենք մեր դիվերի հղումները փոփոխականների մեջ.

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

Եվ հիմա կցենք նրանց կլիկի իրադարձության մշակիչներ.

elem1.addEventListener('click', function() { alert('կանաչ'); }); elem2.addEventListener('click', function() { alert('երկնագույն'); }); elem3.addEventListener('click', function() { alert('կարմիր'); });

Եկեք ցուցադրենք մեր բլոկները էկրանին՝ ավելացնելով նրանց որոշ CSS.

Հիմա կտտացրեք ամենաներքին կարմիր բլոկին - և կտեսնեք, թե ինչպես իրադարձությունը նախ կգործարկվի կարմիր բլոկում, ապա երկնագույնում, այնուհետև կանաչում: Եվ դա տրամաբանական է, քանի որ կտտացնելով ներքին բլոկին, դու միաժամանակ կտտացնում ես բոլոր արտաքիններին:

Այսինքն ստացվում է, որ երբ դուք կտտացնում եք ամենաներքին բլոկին, կլիկի իրադարձությունը առաջանում է նախ դրանում, ապա գործարկվում է դրա ծնողում, ծնողի ծնողում և այսպես շարունակ, մինչև չհասնի մինչև վերև:

Նման վարքագիծը կոչվում է բաբլում (bubbling) իրադարձությունների - անալոգիայով օդի պղպջակի բաբլման հետ հատակից: Ինչպես և պղպջակը, մեր իրադարձությունը կարծես բարձրանում է վերև, ամեն անգամ գործարկվելով ավելի բարձր բլոկներում:

Ինքնուրույն գրեք կոդ, որը կցուցադրի իրադարձությունների բաբլումը: Ստուգեք դրա վրա տարբեր տիպի իրադարձությունների բաբլումը:

Չեն կարող բաբլել բոլոր իրադարձությունները: Փորձնականորեն գտեք գոնե մեկ իրադարձություն, որը չի բաբլում:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել