Heim Web-Frontend js-Tutorial Die Konzepte und Funktionen von Event-Bubbling und Event-Delegation

Die Konzepte und Funktionen von Event-Bubbling und Event-Delegation

Feb 18, 2024 am 11:31 AM
js 事件冒泡 点击事件 Veranstaltungsdelegation

Die Konzepte und Funktionen von Event-Bubbling und Event-Delegation

Was sind JS-Event-Bubbling und Event-Delegation? Spezifische Codebeispiele sind erforderlich.

Event-Bubbling (Event-Bubbling) und Event-Delegation (Event-Delegation) sind zwei wichtige Konzepte im Zusammenhang mit der Ereignisverarbeitung in JS. In diesem Artikel werden beide Konzepte ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um ihre Verwendungs- und Implementierungsprinzipien zu erläutern.

1. Event-Bubbling

Event-Bubbling bedeutet, dass, wenn ein Ereignis (z. B. ein Klickereignis) auf einem Element auftritt und das Element einen Ereignishandler definiert, das Ereignis zuerst ausgelöst wird und sich das Ereignis dann ausbreitet Das aktuelle Element wird Ebene für Ebene zum übergeordneten Element verschoben, bis es das Stammelement des Dokuments erreicht.

Der Event-Bubbling-Mechanismus ermöglicht es uns, den gleichen Event-Handler problemlos mehreren untergeordneten Elementen eines übergeordneten Elements hinzuzufügen, ohne für jedes untergeordnete Element separate Event-Handler definieren zu müssen. Dies vereinfacht den Code und macht ihn wartbarer.

Das Folgende ist ein Codebeispiel für das Ereignis-Bubbling:

HTML-Code:

<div id="parent">
  <div id="child1">子元素1</div>
  <div id="child2">子元素2</div>
</div>
Nach dem Login kopieren

JS-Code:

const parent = document.querySelector('#parent');
const child1 = document.querySelector('#child1');
const child2 = document.querySelector('#child2');

parent.addEventListener('click', function(event) {
  console.log('触发父元素的点击事件');
});

child1.addEventListener('click', function(event) {
  console.log('触发子元素1的点击事件');
  event.stopPropagation();
});

child2.addEventListener('click', function(event) {
  console.log('触发子元素2的点击事件');
  event.stopPropagation();
});
Nach dem Login kopieren

Wenn wir im obigen Code auf untergeordnetes Element 1 oder untergeordnetes Element 2 klicken, gibt die Konsole der Reihe nach Folgendes aus:

触发子元素1的点击事件
触发父元素的点击事件
Nach dem Login kopieren

Der Event-Handler des übergeordneten Elements wird nur ausgelöst, wenn das Ereignis zum übergeordneten Element übergeht. Verhindern Sie, dass die Veranstaltung in die Höhe sprudelt, indem Sie event.stopPropagation() anrufen.

2. Ereignisdelegation

Ereignisdelegation bezieht sich auf die Bindung des Ereignishandlers an das übergeordnete Element und die Bestimmung, ob die entsprechende Operation ausgeführt werden soll, indem das ursprüngliche Ziel des Ereignisses (event.target) beurteilt wird.

Der Vorteil der Ereignisdelegierung besteht darin, dass beim Hinzufügen eines neuen untergeordneten Elements zum übergeordneten Element kein separater Ereignishandler an das neue untergeordnete Element gebunden werden muss, sondern das Ereignis direkt über das übergeordnete Element verarbeitet wird. Dadurch kann die Anzahl der Event-Handler erheblich reduziert und die Leistung verbessert werden.

Das Folgende ist ein Codebeispiel für die Ereignisdelegierung:

HTML-Code:

<ul id="parent">
  <li>项目1</li>
  <li>项目2</li>
  <li>项目3</li>
</ul>
Nach dem Login kopieren

JS-Code:

const parent = document.querySelector('#parent');

parent.addEventListener('click', function(event) {
  if (event.target.tagName === 'LI') {
    const textContent = event.target.textContent;
    console.log('点击了项目:' + textContent);
  }
});
Nach dem Login kopieren

Wenn wir im obigen Code auf ein beliebiges li-Element klicken, gibt die Konsole den Text des angeklickten Elementinhalts aus . Unabhängig davon, wie viele li-Elemente später hinzugefügt werden, werden ihre Klickereignisse vom übergeordneten Element verarbeitet.

Das Prinzip der Event-Delegation wird durch Event-Bubbling umgesetzt. Das Ereignis sprudelt zunächst zum übergeordneten Element und wird dann anhand des ursprünglichen Ziels des Ereignisses beurteilt, um zu bestimmen, ob die entsprechende Aktion ausgeführt werden muss.

Zusammenfassung:

Event-Bubbling und Event-Delegation sind wichtige Konzepte im Zusammenhang mit der Event-Verarbeitung in JS. Durch das Event-Bubbling können wir den gleichen Event-Handler einfach zu mehreren untergeordneten Elementen des übergeordneten Elements hinzufügen und so die Wiederverwendbarkeit des Codes verbessern. Durch die Ereignisdelegierung wird der Event-Handler basierend auf dem ursprünglichen Ziel des Ereignisses gebunden entsprechende Operation, verbessern Sie die Leistung und reduzieren Sie die Codemenge. Wenn Sie in der tatsächlichen Entwicklung Event-Bubbling und Event-Delegation entsprechend Ihren Anforderungen verwenden, können Sie eleganten und effizienten Code schreiben.

Das obige ist der detaillierte Inhalt vonDie Konzepte und Funktionen von Event-Bubbling und Event-Delegation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entwickeln Sie leistungsstarke Desktop-Anwendungen mit Golang Entwickeln Sie leistungsstarke Desktop-Anwendungen mit Golang Mar 19, 2024 pm 05:45 PM

Verwenden Sie Golang, um leistungsstarke Desktop-Anwendungen zu entwickeln. Mit der kontinuierlichen Entwicklung des Internets sind Menschen untrennbar mit verschiedenen Arten von Desktop-Anwendungen verbunden. Für Entwickler ist es von entscheidender Bedeutung, effiziente Programmiersprachen zu verwenden, um leistungsstarke Desktop-Anwendungen zu entwickeln. In diesem Artikel wird die Verwendung von Golang (Go-Sprache) zur Entwicklung leistungsstarker Desktop-Anwendungen vorgestellt und einige spezifische Codebeispiele bereitgestellt. Golang ist eine von Google entwickelte Open-Source-Programmiersprache. Sie zeichnet sich durch Einfachheit, Effizienz, starke Parallelität usw. aus und eignet sich sehr gut für

So richten Sie Jump on Laui-Anmeldeseite ein So richten Sie Jump on Laui-Anmeldeseite ein Apr 04, 2024 am 03:12 AM

Schritte zur Sprungeinstellung der Layui-Anmeldeseite: Sprungcode hinzufügen: Fügen Sie im Anmeldeformular ein Beurteilungsereignis hinzu, klicken Sie auf die Schaltfläche „Senden“ und springen Sie nach erfolgreicher Anmeldung über window.location.href zur angegebenen Seite. Ändern Sie die Formularkonfiguration: Fügen Sie dem Formularelement von „lay-filter="login" ein verstecktes Eingabefeld mit dem Namen „redirect“ und dem Wert der Zielseitenadresse hinzu.

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

So fügen Sie in Vue Berührungsereignisse zu Bildern hinzu So fügen Sie in Vue Berührungsereignisse zu Bildern hinzu May 02, 2024 pm 10:21 PM

Wie füge ich in Vue ein Klickereignis zum Bild hinzu? Importieren Sie die Vue-Instanz. Erstellen Sie eine Vue-Instanz. Fügen Sie Bilder zu HTML-Vorlagen hinzu. Fügen Sie Klickereignisse mit der v-on:click-Direktive hinzu. Definieren Sie die handleClick-Methode in der Vue-Instanz.

Hongmeng HarmonyOS- und Go-Sprachentwicklung Hongmeng HarmonyOS- und Go-Sprachentwicklung Apr 08, 2024 pm 04:48 PM

Einführung in die Sprachentwicklung von HarmonyOS und Go. HarmonyOS ist ein von Huawei entwickeltes verteiltes Betriebssystem, und Go ist eine moderne Programmiersprache. Die Kombination der beiden bietet eine leistungsstarke Lösung für die Entwicklung verteilter Anwendungen. In diesem Artikel wird die Verwendung der Go-Sprache für die Entwicklung in HarmonyOS vorgestellt und das Verständnis anhand praktischer Fälle vertieft. Installation und Einrichtung Um die Go-Sprache zum Entwickeln von HarmonyOS-Anwendungen zu verwenden, müssen Sie zuerst GoSDK und HarmonyOSSDK installieren. Die spezifischen Schritte sind wie folgt: #Installieren Sie GoSDKgogetgithub.com/golang/go#Set PATH

PHP-Tipps: Implementieren Sie schnell die Funktion „Zurück zur vorherigen Seite'. PHP-Tipps: Implementieren Sie schnell die Funktion „Zurück zur vorherigen Seite'. Mar 09, 2024 am 08:21 AM

PHP-Tipps: Implementieren Sie schnell die Funktion zum Zurückkehren zur vorherigen Seite. Bei der Webentwicklung müssen wir häufig die Funktion zum Zurückkehren zur vorherigen Seite implementieren. Solche Vorgänge können das Benutzererlebnis verbessern und Benutzern die Navigation zwischen Webseiten erleichtern. In PHP können wir diese Funktion durch einfachen Code erreichen. In diesem Artikel wird erläutert, wie Sie die Funktion zum Zurückkehren zur vorherigen Seite schnell implementieren können, und es werden spezifische PHP-Codebeispiele bereitgestellt. In PHP können wir $_SERVER['HTTP_REFERER'] verwenden, um die URL der vorherigen Seite abzurufen

Was ist der ereignisgesteuerte Mechanismus von C++-Funktionen in der gleichzeitigen Programmierung? Was ist der ereignisgesteuerte Mechanismus von C++-Funktionen in der gleichzeitigen Programmierung? Apr 26, 2024 pm 02:15 PM

Der ereignisgesteuerte Mechanismus in der gleichzeitigen Programmierung reagiert auf externe Ereignisse, indem er beim Eintreten von Ereignissen Rückruffunktionen ausführt. In C++ kann der ereignisgesteuerte Mechanismus mit Funktionszeigern implementiert werden: Funktionszeiger können Callback-Funktionen registrieren, die beim Eintreten von Ereignissen ausgeführt werden sollen. Lambda-Ausdrücke können auch Ereignisrückrufe implementieren und so die Erstellung anonymer Funktionsobjekte ermöglichen. Im konkreten Fall werden Funktionszeiger verwendet, um Klickereignisse für GUI-Schaltflächen zu implementieren, die Rückruffunktion aufzurufen und Meldungen zu drucken, wenn das Ereignis auftritt.

Detaillierte Erläuterung des Abrufens von Webseitenelementen durch JavaScript Detaillierte Erläuterung des Abrufens von Webseitenelementen durch JavaScript Apr 09, 2024 pm 12:45 PM

Antwort: JavaScript bietet eine Vielzahl von Methoden zum Abrufen von Webseitenelementen, einschließlich der Verwendung von IDs, Tag-Namen, Klassennamen und CSS-Selektoren. Detaillierte Beschreibung: getElementById(id): Elemente basierend auf einer eindeutigen ID abrufen. getElementsByTagName(tag): Ruft die Elementgruppe mit dem angegebenen Tag-Namen ab. getElementsByClassName(class): Ruft die Elementgruppe mit dem angegebenen Klassennamen ab. querySelector(selector): Verwenden Sie den CSS-Selektor, um das erste passende Element abzurufen. querySelectorAll(selector): Alle Übereinstimmungen mithilfe des CSS-Selektors abrufen

See all articles