⊗jsPmOEBUs 428 of 505 menu

Aplicarea opririi propagării evenimentelor în JavaScript

Să presupunem că în interiorul unui părinte avem un buton și un anumit bloc:

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

Obținem referințele la elementele noastre în variabile:

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

Să presupunem că blocul nostru este inițial ascuns:

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

Să facem astfel încât la click pe buton blocul nostru să apară:

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

Și acum să facem astfel încât la click pe orice loc al părintelui blocul nostru să se ascundă:

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

Cu toate acestea, ne așteaptă o surpriză neașteptată: deoarece butonul se află în interiorul părintelui, click-ul pe buton înseamnă simultan și click pe părinte. Aceasta înseamnă că mai întâi blocul nostru va apărea, iar apoi datorită propagării evenimentului se va activa handler-ul din părinte și blocul nostru va dispărea.

Și iată că ne este utilă posibilitatea de a anula propagarea: putem face astfel încât la click pe buton să anulăm propagarea, părintele să nu reacționeze la acest click.

Implementați independent funcționarea corectă a sarcinii descrise.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge