Unterschied zwischen Event Bubbling und Capture in JavaScript

Abid Ullah 15 Februar 2024
  1. Ereignissprudeln in JavaScript
  2. Ereigniserfassung in JavaScript
Unterschied zwischen Event Bubbling und Capture in JavaScript

In diesem Artikel geht es um Event-Bubbling und Event-Capturing, die in JavaScript verwendet werden. Nachdem Sie diesen Artikel gelesen haben, werden Sie das Bubbling und Capturen von Ereignissen in JavaScript klar verstehen.

Wir werden auch die Unterschiede zwischen diesen Ereignissen besprechen. Wir werden sehen, wann das Bubbling und Capturing von Ereignissen in JavaScript verwendet wird.

In JavaScript beschreiben Ereignis-Bubbling und -Erfassung Phasen, in denen der Browser Ereignisse verarbeitet, die auf verschachtelte Elemente abzielen.

Lassen Sie uns diese beiden Ereignisse nacheinander verstehen.

Ereignissprudeln in JavaScript

Das Event-Bubbling ist eine in JavaScript verwendete Methode zur Ereignisweitergabe. Event Bubbling ist ein Prozess, der mit dem Element beginnt, das das Ereignis auslöst, und die enthaltenden Elemente der Reihe nach aufbläht.

Beim Event-Bubbling in JavaScript wird das Event zunächst vom innersten Element erfasst und verarbeitet und dann an die äußersten Elemente weitergegeben.

Das Prinzip des Eventsprudelns ist sehr einfach. Wenn ein Ereignis auf einem anderen Element auftritt, wird es zuerst auf den Handlern und dann auf seinem übergeordneten Element ausgeführt.

Es bezieht sich auf die Reihenfolge, in der Ereignisse in verschachtelten Elementen in JavaScript weitergegeben werden.

Lassen Sie uns das Ereignisblasen mit Hilfe des folgenden Diagramms verstehen.

Flow of Event Bubbling

Das obige Bild zeigt, dass das Ereignis in dieser Reihenfolge von unten nach oben fließt, wenn ein Benutzer auf die Schaltfläche klickt.

Lassen Sie uns nun das Blubbern des Ereignisses mithilfe von Beispielcode verstehen.

Wie wir sehen können, haben wir einen HTML-Code, in dem wir zwei Schaltflächen Eltern und Kind erstellt haben. Wir haben den parent-Button in <div> und den child-Button in <p> abgelegt.

Im folgenden Code haben wir JavaScript verwendet, und im Skript haben wir ein .addEventListener-Objekt verwendet, um das Bubbling-Ereignis auszuführen.

Wenn wir diesen Code ausführen, werden zwei Ereignisse angezeigt: parent und child. Das Kind-Ereignis ist das innerste Element, und das Eltern-Ereignis ist das äußerste Element.

Beispielcode:

<!DOCTYPE html>
<html>
<head>
    <title>
        The Bubbling_Event in Javascript
    </title>
</head>
<body>
    <h2>The Bubbling_Event in Javascript</h2>
    <div id="parent">
    <button>
        <h2>Parent</h2>
    </button>
    <button id="child">
<p>Child</p>
    </button>
    </div><br>
    <script>
        document.getElementById(
"child").addEventListener("click", function () {
            alert("YOU CLICKED THE CHILD ELEMENT.");
        }, false);
        document.getElementById(
"parent").addEventListener("click", function () {
            alert("YOU CLICKED THE PARENT ELEMENT.");
        }, false);
    </script>
</body>
</html>

Die Ausgabe nach dem Ausführen des Codes:

Ereignis-Bubbling-Ausgabe

Wenn wir auf die Schaltfläche Eltern klicken, erhalten wir die folgende Ausgabe:

Ausgabe beim Klicken auf die übergeordnete Schaltfläche

Wenn wir auf die Schaltfläche Kind klicken, erhalten wir die folgende Ausgabe:

Ausgabe beim Klicken auf den untergeordneten Button

übergeordnetes Ereignis nach dem Klicken auf das untergeordnete Ereignis

Aus dem obigen Beispielcode sehen wir, dass beim Ereignis Bubbling das Ereignis des innersten Elements zuerst ausgelöst wird und dann dem Element des äußersten Ereignisses folgt. Zuerst wird das Element <p> behandelt, dann das Element <div>.

Wir verwenden also das Bubbling-Ereignis, wenn wir das innerste Element in JavaScript behandeln müssen.

Greifen Sie hier auf die Demo des obigen Beispielcodes zu.

Ereigniserfassung in JavaScript

Die Ereigniserfassung wird selten in echtem Code verwendet, kann aber manchmal sehr hilfreich sein. Die Ereigniserfassung ist das Gegenteil des Ereignisblasens; das äußerste Element wird bei der Ereigniserfassung zuerst anvisiert.

In JavaScript verwenden wir die Ereigniserfassung, wenn wir zuerst das Ereignis des äußersten Elements behandeln müssen. Die Ereigniserfassung wird vor dem Ereignis-Bubbling durchgeführt, wird jedoch selten verwendet, da das Ereignis-Bubbling ausreicht, um den Fluss der Ereignisse in JavaScript zu verarbeiten.

Das Flussdiagramm zum Verständnis der Ereigniserfassung ist unten angegeben. Das Bild zeigt, dass das Ereignis in dieser Reihenfolge von oben nach unten fließt, wenn ein Benutzer auf die Schaltfläche klickt.

Flussdiagramm zur Ereigniserfassung

Lassen Sie uns nun die Ereigniserfassung anhand eines Beispielcodes verstehen.

Wie wir im folgenden Code sehen können, haben wir im Element <div> eine Schaltfläche erstellt. Wir haben auch JavaScript im folgenden HTML-Code verwendet, in dem wir das Objekt .addEventListener verwendet haben, das die Ereigniserfassung durchführt.

Wenn wir diesen Code ausführen und auf die Schaltfläche Click Me klicken, generiert die Konsole die folgende Ausgabe.

Beispielcode:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
    <title>What is Event Capturing in JavaScript</title>
</head>
<body>
    <div class="button-list">
        <div class="button-container">
            <button class="button"
                onClick="console.log('Button!')">
                Click Me
            </button>
        </div>
    </div>
    <script>
        document.addEventListener("click", () =>
            console.log('Event Capturing!'), true);
        document.addEventListener("click", () =>
            console.log('Event Bubbling!'), false);
    </script>
</body>
</html>

Die Ausgabe des Codes:

Ausgabe nach dem Klicken auf die Schaltfläche &ldquo;Klicken Sie auf mich&rdquo;

Wie wir anhand der Ereigniserfassung in JavaScript sehen können, werden die Ereignisse in der erwarteten Reihenfolge behandelt.

Greifen Sie hier auf die Demo des obigen Beispielcodes zu.

Der Hauptunterschied zwischen diesen beiden Ereignissen besteht darin, dass das Ereignis Bubbling zuerst die Ereignisse vom innersten zum äußersten verarbeitet und das Ereigniserfassung zuerst das Ereignis des äußersten Elements verarbeitet.

Ereignis-Bubbling vs. Event-Capturing-Flussdiagramm

Nachdem Sie diesen Artikel gelesen haben, hoffen wir, Ihnen gezeigt zu haben, wie Event-Bubbling und -Erfassung in JavaScript funktionieren.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

Verwandter Artikel - JavaScript Event