⊗jsPmOEBUs 428 of 505 menu

Aplikácia zastavenia propagácie udalostí v JavaScripte

Nech je vo vnútri jedného rodiča naše tlačidlo a nejaký blok:

<div id="parent"> <button>click me</button> <div id="block"> text </div> </div>

Získame odkazy na naše elementy do premenných:

let parent = document.querySelector('#parent'); let button = document.querySelector('button'); let block = document.querySelector('#block');

Nech je náš blok spočiatku skrytý:

#block:not(.active) { display: none; }

Urobme to, aby sa po kliknutí na tlačidlo náš blok zobrazil:

button.addEventListener('click', function() { block.classList.add('active'); });

A teraz urobme to, aby sa po kliknutí na akékoľvek miesto rodiča náš blok skryl:

parent.addEventListener('click', function() { block.classList.remove('active'); });

Čaká nás však nepríjemné prekvapenie: pretože tlačidlo sa nachádza vo vnútri rodiča, kliknutie na tlačidlo zároveň znamená aj kliknutie na rodiča. To znamená, že najprv sa náš blok zobrazí a potom kvôli propagácii udalosti sa spustí obsluha v rodičovi a náš blok sa skryje.

Tu sa nám zíde možnosť zrušiť propagáciu: môžeme urobiť to, aby pri kliknutí na tlačidlo sa zrušila propagácia a rodič na toto kliknutie nereagoval.

Samostatne implementujte korektnú fungovanie opisanej úlohy.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť