⊗jsPmOEBUs 428 of 505 menu

Tillämpning av att stoppa eventbubblan i JavaScript

Låt oss säga att vi inuti en förälder har en knapp och ett visst block:

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

Låt oss hämta referenser till våra element i variabler:

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

Låt oss säga att vårt block initialt är dolt:

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

Låt oss göra så att när man klickar på knappen så visas vårt block:

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

Och nu gör vi så att när man klickar på vilken plats som helst på föräldern så döljs vårt block:

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

Men vi kommer att mötas av en oväntad överraskning: eftersom knappen finns inuti föräldern så betyder klick på knappen samtidigt också klick på föräldern. Det betyder att först kommer vårt block att visas, och sedan på grund av eventbubblan kommer hanteraren i föräldern att triggas och vårt block kommer att döljas.

Det är här möjligheten att avbryta bubblan kommer till användning: vi kan göra så att när man klickar på knappen avbryter vi bubblan, så att föräldern inte reagerar på detta klick.

Implementera självständigt korrekt funktionalitet för den beskrivna uppgiften.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa