Teraz po kliknięciu #child konsola wyświetli tylko: CHILD clicked , #parent nie otrzyma zdarzenia.
Wymuszenie przechwytywania zdarzeń
Domyślnie nasłuchiwanie zdarzeń odbywa się w fazie bąbelkowania, co zonacza, że najpierw wywołane zostanie zdarzenie dla #child , a następnie dla #parent . Można jednak odwrócić tą kolejność, przypisując zdarzenie do do fazy przechwytywania, poprzez przekazanie true jako trzeciego argumentu addEventListener:
Teraz #parent zostanie uruchomiony przed#child, ponieważ obsługuje zdarzenia w fazie przechwytywania.
2. Delegacja zdarzeń
Delegacja zdarzeń to technika polegająca na przypisywaniu event listenera do elementu nadrzędnego zamiast do każdego potomka osobno. Przydatne, gdy elementy dynamicznie pojawiają się w DOM (np. za pomocą ajax).
const newChild = document.createElement("div");
newChild.classList.add("child");
newChild.textContent = "New element";
document.getElementById("parent").appendChild(newChild);
Nadal będziemy mogli wykryć kliknięcia w nowy element, mimo że nie dodaliśmy mu osobnego addEventListener.
Author: Joanna
Piszę kody, które (zazwyczaj) działają. Tresuję Wordpressa, kodzę z Reactem, zgłębiam świat DevOps i klikam w konsoli Linuxa. Hobbystycznie optymalizuję kod, bo lenistwo to najczystsza forma produktywności. Staram się nie zwariować między bugiem a deadlinem.