Heim Web-Frontend js-Tutorial Analysieren Sie den Mechanismus und die Verwendung von Event-Bubbling

Analysieren Sie den Mechanismus und die Verwendung von Event-Bubbling

Jan 13, 2024 am 09:26 AM
事件冒泡 应用 原理

Analysieren Sie den Mechanismus und die Verwendung von Event-Bubbling

Event-Bubbling ist ein Ereignisbereitstellungsmechanismus, der häufig in der Front-End-Entwicklung verwendet wird. In diesem Artikel werden wir die Prinzipien und Anwendungen des Event-Bubblings ausführlich erläutern und Codebeispiele bereitstellen, um den Lesern ein besseres Verständnis zu erleichtern.

1. Das Prinzip des Event-Bubblings
Event-Bubbling bedeutet, dass, wenn ein Ereignis auf einem Element ausgelöst wird, es Schritt für Schritt an die oberen Elemente bis zum Wurzelelement weitergegeben wird. Mit anderen Worten: Ereignisse werden beginnend mit dem spezifischsten Element weitergegeben und dann zu allgemeineren Elementen übergegangen.

Das Prinzip der Event-Bubbling lässt sich auf die folgenden Punkte zusammenfassen:

  1. Die Ausbreitung von Ereignissen erfolgt vom untergeordneten Element über das übergeordnete Element bis hin zum Wurzelelement.
  2. Die Ereignisse des untergeordneten Elements werden an sein übergeordnetes Element und dann an das eine Ebene darüber liegende übergeordnete Element bis zum Stammelement übergeben.
  3. Wenn während des Ereigniszustellungsprozesses die übergeordneten Elemente jeder Ebene an dieselben Ereignishandler gebunden sind, werden diese Ereignishandler aufgerufen.

2. Anwendung von Event-Bubbling

  1. Vereinfachte Event-Bindung: Durch die Verwendung des Event-Bubbling-Mechanismus können wir den Event-Handler an das übergeordnete Element binden und so die Notwendigkeit reduzieren, Ereignisse an mehrere untergeordnete Elemente zu binden. Dieser Ansatz kann die Wartbarkeit und Ausführungseffizienz des Codes verbessern.

Zum Beispiel haben wir ein übergeordnetes Element div, das mehrere Schaltflächen für untergeordnete Elemente und denselben Klickereignishandler für jede Schaltfläche enthält. Wenn wir Event-Bubbling verwenden, müssen wir ein Ereignis nur einmal an das übergeordnete Element div binden, wie unten gezeigt:

<div id="parentElement">
  <button>按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
</div>

<script>
var parentElement = document.getElementById('parentElement');
parentElement.addEventListener('click', function(e) {
  console.log(e.target.innerHTML + '被点击了');
});
</script>
Nach dem Login kopieren

Im obigen Code binden wir einen Click-Event-Handler an das übergeordnete Element div. Wenn auf die Schaltfläche eines untergeordneten Elements geklickt wird, wird das Ereignis zum div des übergeordneten Elements weitergeleitet und löst den Ereignishandler des übergeordneten Elements aus. Durch Drucken des Zielattributs des Ereignisobjekts können wir die spezifische angeklickte Schaltfläche erhalten.

  1. Ereignisdelegation: Die Ereignisdelegation ist eine gängige Technologie, die den Ereignis-Bubbling-Mechanismus nutzt, um dynamisch hinzugefügte Elemente zu verarbeiten. Durch die Bindung von Event-Handlern an übergeordnete Elemente können entsprechende Ereignisse auf dynamisch hinzugefügten untergeordneten Elementen ausgelöst werden.

Zum Beispiel haben wir im vorherigen Beispiel dynamisch eine neue Schaltfläche hinzugefügt, wie unten gezeigt:

<div id="parentElement">
  <button>按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
</div>

<script>
var parentElement = document.getElementById('parentElement');
parentElement.addEventListener('click', function(e) {
  if (e.target.tagName.toLowerCase() === 'button') {
    console.log(e.target.innerHTML + '被点击了');
  }
});

var newButton = document.createElement('button');
newButton.innerHTML = '新按钮';
parentElement.appendChild(newButton);
</script>
Nach dem Login kopieren

Im obigen Code haben wir einen Klickereignishandler an das übergeordnete Element div gebunden, indem wir das Ereignis beurteilt haben Ob das ausgelöste Ziel Element ist eine Schaltfläche zum Herausfiltern von Elementen, die nicht verarbeitet werden müssen. Auf diese Weise können wir Klickereignisse für dynamisch hinzugefügte Elemente verarbeiten, ohne für jedes neu hinzugefügte Element separate Ereignisse binden zu müssen.

  1. Ereignisweitergabe stoppen: Durch Aufrufen der stopPropagation()-Methode des Ereignisobjekts im Ereignishandler können Sie die weitere Zustellung des Ereignisses stoppen.

Zum Beispiel binden wir ein Klickereignis an die Schaltfläche des untergeordneten Elements und rufen die Methode stopPropagation() im Ereignishandler auf, wie unten gezeigt:

<div id="parentElement">
  <button>按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
</div>

<script>
var buttons = document.getElementsByTagName('button');

for (var i = 0; i < buttons.length; i++) {
  buttons[i].addEventListener('click', function(e) {
    console.log(e.target.innerHTML + '被点击了');
    e.stopPropagation();
  });
}

var parentElement = document.getElementById('parentElement');
parentElement.addEventListener('click', function(e) {
  console.log('父元素被点击了');
});
</script>
Nach dem Login kopieren

Im obigen Code wird das Ereignis ausgelöst, wenn auf die Schaltfläche des untergeordneten Elements geklickt wird Der Click-Event-Handler des untergeordneten Elements selbst wird ausgelöst und ruft die stopPropagation()-Methode auf, um zu verhindern, dass das Ereignis weiterhin zugestellt wird. Daher wird der Click-Event-Handler des übergeordneten Elements nicht ausgelöst.

Zusammenfassung:
Event-Bubbling ist ein häufig verwendeter Ereignisbereitstellungsmechanismus in der Front-End-Entwicklung, der die Ereignisbindung vereinfachen, die Ereignisdelegation implementieren und die Ereignisbereitstellung steuern kann. Durch die richtige Nutzung von Event-Bubbling können wir die Wartbarkeit und Ausführungseffizienz des Codes verbessern.

Das obige ist der detaillierte Inhalt vonAnalysieren Sie den Mechanismus und die Verwendung von Event-Bubbling. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig Apr 17, 2024 pm 07:37 PM

Sie haben etwas Wichtiges von Ihrem Startbildschirm gelöscht und versuchen, es wiederherzustellen? Es gibt verschiedene Möglichkeiten, App-Symbole wieder auf dem Bildschirm anzuzeigen. Wir haben alle Methoden besprochen, die Sie anwenden können, um das App-Symbol wieder auf dem Startbildschirm anzuzeigen. So machen Sie das Entfernen vom Startbildschirm auf dem iPhone rückgängig. Wie bereits erwähnt, gibt es mehrere Möglichkeiten, diese Änderung auf dem iPhone wiederherzustellen. Methode 1 – App-Symbol in der App-Bibliothek ersetzen Sie können ein App-Symbol direkt aus der App-Bibliothek auf Ihrem Startbildschirm platzieren. Schritt 1 – Wischen Sie seitwärts, um alle Apps in der App-Bibliothek zu finden. Schritt 2 – Suchen Sie das App-Symbol, das Sie zuvor gelöscht haben. Schritt 3 – Ziehen Sie einfach das App-Symbol aus der Hauptbibliothek an die richtige Stelle auf dem Startbildschirm. Dies ist das Anwendungsdiagramm

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Mar 22, 2024 am 11:30 AM

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP In PHP wird das Pfeilsymbol (->) normalerweise verwendet, um auf die Eigenschaften und Methoden von Objekten zuzugreifen. Objekte sind eines der Grundkonzepte der objektorientierten Programmierung (OOP) in PHP. In der tatsächlichen Entwicklung spielen Pfeilsymbole eine wichtige Rolle bei der Bedienung von Objekten. In diesem Artikel werden die Rolle und die praktische Anwendung von Pfeilsymbolen vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Pfeilsymbols für den Zugriff auf die Eigenschaften eines Objekts. Das Pfeilsymbol kann für den Zugriff auf die Eigenschaften eines Objekts verwendet werden. Wenn wir ein Paar instanziieren

Analyse der Funktion und des Prinzips von Nohup Analyse der Funktion und des Prinzips von Nohup Mar 25, 2024 pm 03:24 PM

Analyse der Rolle und des Prinzips von nohup In Unix und Unix-ähnlichen Betriebssystemen ist nohup ein häufig verwendeter Befehl, mit dem Befehle im Hintergrund ausgeführt werden können. Selbst wenn der Benutzer die aktuelle Sitzung verlässt oder das Terminalfenster schließt, kann der Befehl ausgeführt werden werden weiterhin ausgeführt. In diesem Artikel werden wir die Funktion und das Prinzip des Nohup-Befehls im Detail analysieren. 1. Die Rolle von Nohup: Befehle im Hintergrund ausführen: Mit dem Befehl Nohup können wir Befehle mit langer Laufzeit weiterhin im Hintergrund ausführen lassen, ohne dass dies dadurch beeinträchtigt wird, dass der Benutzer die Terminalsitzung verlässt. Dies muss ausgeführt werden

Vom Anfänger bis zum Experten: Entdecken Sie verschiedene Anwendungsszenarien des Linux-Befehls tee Vom Anfänger bis zum Experten: Entdecken Sie verschiedene Anwendungsszenarien des Linux-Befehls tee Mar 20, 2024 am 10:00 AM

Der Linuxtee-Befehl ist ein sehr nützliches Befehlszeilentool, das Ausgaben in eine Datei schreiben oder an einen anderen Befehl senden kann, ohne die vorhandene Ausgabe zu beeinträchtigen. In diesem Artikel werden wir die verschiedenen Anwendungsszenarien des Linuxtee-Befehls eingehend untersuchen, vom Anfänger bis zum Experten. 1. Grundlegende Verwendung Werfen wir zunächst einen Blick auf die grundlegende Verwendung des Tee-Befehls. Die Syntax des Tee-Befehls lautet wie folgt: tee[OPTION]...[DATEI]...Dieser Befehl liest Daten aus der Standardeingabe und speichert sie dort

Warum kann das Klickereignis in js nicht wiederholt ausgeführt werden? Warum kann das Klickereignis in js nicht wiederholt ausgeführt werden? May 07, 2024 pm 06:36 PM

Klickereignisse in JavaScript können aufgrund des Event-Bubbling-Mechanismus nicht wiederholt ausgeführt werden. Um dieses Problem zu lösen, können Sie die folgenden Maßnahmen ergreifen: Verwenden Sie die Ereigniserfassung: Geben Sie einen Ereignis-Listener an, der ausgelöst wird, bevor das Ereignis in die Luft sprudelt. Übergabe von Ereignissen: Verwenden Sie event.stopPropagation(), um das Sprudeln von Ereignissen zu stoppen. Verwenden Sie einen Timer: Lösen Sie den Ereignis-Listener nach einiger Zeit erneut aus.

Entdecken Sie die Vorteile und Anwendungsszenarien der Go-Sprache Entdecken Sie die Vorteile und Anwendungsszenarien der Go-Sprache Mar 27, 2024 pm 03:48 PM

Die Go-Sprache ist eine Open-Source-Programmiersprache, die von Google entwickelt und erstmals 2007 veröffentlicht wurde. Sie ist als einfache, leicht zu erlernende, effiziente Sprache mit hoher Parallelität konzipiert und wird von immer mehr Entwicklern bevorzugt. In diesem Artikel werden die Vorteile der Go-Sprache untersucht, einige für die Go-Sprache geeignete Anwendungsszenarien vorgestellt und spezifische Codebeispiele gegeben. Vorteile: Starke Parallelität: Die Go-Sprache verfügt über eine integrierte Unterstützung für leichtgewichtige Threads-Goroutinen, mit denen die gleichzeitige Programmierung problemlos implementiert werden kann. Goroutine kann mit dem Schlüsselwort go gestartet werden

Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? May 09, 2024 pm 02:33 PM

Vue.js-Ereignismodifikatoren werden verwendet, um bestimmte Verhaltensweisen hinzuzufügen, darunter: Verhindern von Standardverhalten (.prevent), Stoppen von Ereignisblasen (.stop), Einmaliges Ereignis (.once), Erfassen von Ereignissen (.capture), Passives Abhören von Ereignissen (.passive), Adaptiv Modifikator (.self)Schlüsselmodifikator (.key)

Die breite Anwendung von Linux im Bereich Cloud Computing Die breite Anwendung von Linux im Bereich Cloud Computing Mar 20, 2024 pm 04:51 PM

Die breite Anwendung von Linux im Bereich Cloud Computing Mit der kontinuierlichen Weiterentwicklung und Popularisierung der Cloud-Computing-Technologie spielt Linux als Open-Source-Betriebssystem eine wichtige Rolle im Bereich Cloud Computing. Aufgrund seiner Stabilität, Sicherheit und Flexibilität werden Linux-Systeme häufig in verschiedenen Cloud-Computing-Plattformen und -Diensten eingesetzt und bieten eine solide Grundlage für die Entwicklung der Cloud-Computing-Technologie. In diesem Artikel werden die vielfältigen Einsatzmöglichkeiten von Linux im Bereich Cloud Computing vorgestellt und konkrete Codebeispiele gegeben. 1. Anwendungsvirtualisierungstechnologie von Linux in der Virtualisierungstechnologie der Cloud-Computing-Plattform

See all articles