Heim Web-Frontend Front-End-Fragen und Antworten So verhindern Sie, dass Ereignisse in Javascript sprudeln

So verhindern Sie, dass Ereignisse in Javascript sprudeln

Apr 24, 2023 am 10:47 AM

Das Blasen von Ereignissen in JavaScript ist ein üblicher Mechanismus zur Ereignisausbreitung. Das bedeutet, dass sich ein Ereignis nach oben ausbreitet (übergeordneter Knoten), bis es den Stammknoten des Dokuments erreicht und breitet sich dann nach außen aus, daher spricht man von Event-Bubbling. Die Implementierung des Event-Bubbling-Mechanismus hat viele Vorteile. Beispielsweise können Event-Handler zum übergeordneten Element anstelle jedes untergeordneten Elements hinzugefügt werden, wodurch die Code-Redundanz verringert und die Wartbarkeit und Wiederverwendbarkeit des Codes verbessert wird. In einigen Fällen müssen wir jedoch möglicherweise verhindern, dass Elementereignisse in die Luft sprudeln, um andere Elemente nicht zu beeinträchtigen. In diesem Artikel werden Möglichkeiten vorgestellt, um zu verhindern, dass Ereignisse in JavaScript sprudeln.

1. Ereigniserfassung und Ereignis-Bubbling

Bevor wir das Ereignis-Bubbling ausführlich besprechen, müssen wir die zwei verschiedenen Phasen der Ereignisausbreitung verstehen: Ereigniserfassung und Ereignis-Bubbling. Die Ereigniserfassung wird vom Stammknoten des Dokuments nach unten zum Zielelement weitergegeben, während die Ereignisblase vom Zielelement nach oben zum Stammknoten des Dokuments weitergegeben wird. Im DOM-Ereignismodell werden Ereignisse zunächst an das äußerste Element des Zielelements übermittelt und dann nach innen weitergegeben, bis ein Ereignis auf dem Zielelement ausgelöst wird. Anschließend wird das Ereignis vom Zielelement nach außen bis zum Zielelement weitergegeben dokumentieren.

2. Methoden zur Verhinderung der Ereignisausbreitung

In JavaScript können wir die Methoden „preventDefault()“ und „stopPropagation()“ verwenden, um die Ausbreitung von Ereignissen zu verhindern. Die Methode Event.preventDefault() wird verwendet, um das Standardverhalten des Ereignisses zu verhindern, beispielsweise das Springen zu einer neuen Seite, wenn auf einen Link geklickt wird. Die Methode stopPropagation() wird verwendet, um die Ausbreitung von Ereignissen zu verhindern und so die Entstehung von Ereignissen oder die Erfassung von Ereignissen zu verhindern. Es kann innerhalb eines Event-Handlers aufgerufen werden, um die Ausbreitung von Event-Bubbling oder Event-Capture zu stoppen.

  1. Verwenden Sie die Methode event.stopPropagation()

Diese Methode kann die weitere Ausbreitung eines Ereignisses verhindern und verhindern, dass ein übergeordnetes Element Ereignisse anderer Elemente erfasst. Wenn ein Ereignis ausgelöst wird, wird die weitere Ausbreitung gestoppt und andere Ereignishandler werden nicht aufgerufen.

Der Beispielcode lautet wie folgt:

document.querySelector('#child').addEventListener('click', function(event) {
  console.log('child clicked');
  event.stopPropagation();
})

document.querySelector('#parent').addEventListener('click', function(event) {
  console.log('parent clicked');
})
Nach dem Login kopieren

Wenn in diesem Beispiel auf ein untergeordnetes Element geklickt wird, werden keine Ereignisse mehr übermittelt und der Ereignishandler des übergeordneten Elements wird nicht ausgelöst.

  1. Verwenden Sie die Methode event.preventDefault()

Diese Methode verhindert nur das Standardverhalten des Ereignisses, verhindert jedoch nicht, dass das Ereignis sprudelt. Der Beispielcode lautet wie folgt:

document.querySelector('a').addEventListener('click', function(event) {
  console.log('link clicked');
  event.preventDefault();
})

document.querySelector('div').addEventListener('click', function(event) {
  console.log('div clicked');
})
Nach dem Login kopieren

In diesem Beispiel gibt der Ereignishandler beim Klicken auf den Link eine Nachricht aus und verhindert das Springen zu einer neuen Seite. Es wird jedoch weiterhin an den Ereignishandler des übergeordneten Elements (des div-Elements) übergeben.

  1. Verhindern Sie das Sprudeln von Ereignissen und das Standardverhalten.

Manchmal müssen wir gleichzeitig das Standardverhalten und den Sprudelnsprozess eines Ereignisses verhindern. In diesem Fall können wir die Methoden „preventDefault()“ und „stopPropagation()“ aufrufen.

Beispielcode lautet wie folgt:

document.querySelector('a').addEventListener('click', function(event) {
  console.log('link clicked');
  event.preventDefault();
  event.stopPropagation();
})

document.querySelector('div').addEventListener('click', function(event) {
  console.log('div clicked');
})
Nach dem Login kopieren

Wenn in diesem Beispiel auf den Link geklickt wird, ruft der Ereignishandler die Methoden „preventDefault()“ und „stopPropagation()“ auf und stoppt so das Standardverhalten des Ereignisses und verhindert, dass es in die Luft sprudelt. Daher wird der Ereignishandler des div-Elements nicht aufgerufen.

3. Zusammenfassung

In diesem Artikel haben wir die Methode zur Verhinderung von Ereignisblasen in JavaScript vorgestellt, d. h. die Verwendung der Methoden stopPropagation() und präventDefault(). Wir haben auch den Unterschied zwischen Event-Bubbling und Event-Capturing behandelt. Wenn wir verhindern müssen, dass das Ereignis sprudelt, können wir die Methode „stopPropagation()“ verwenden, und wenn wir das Standardverhalten des Ereignisses verhindern müssen, können wir die Methode „preventDefault()“ verwenden. In einigen Fällen müssen wir möglicherweise beides verwenden, um das Sprudeln von Ereignissen zu verhindern, und ein Standardverhalten entsprechend unseren Anforderungen verwenden.

Das obige ist der detaillierte Inhalt vonSo verhindern Sie, dass Ereignisse in Javascript sprudeln. 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)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate 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)

Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Mar 19, 2025 pm 03:58 PM

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Wie funktioniert der React -Versöhnungsalgorithmus? Wie funktioniert der React -Versöhnungsalgorithmus? Mar 18, 2025 pm 01:58 PM

Der Artikel erläutert den Versöhnungsalgorithmus von React, der das DOM effizient aktualisiert, indem virtuelle DOM -Bäume verglichen werden. Es werden Leistungsvorteile, Optimierungstechniken und Auswirkungen auf die Benutzererfahrung erörtert.

Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben? Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben? Mar 18, 2025 pm 01:44 PM

Funktionen höherer Ordnung in JavaScript verbessern die Übersichtlichkeit, Wiederverwendbarkeit, Modularität und Leistung von Code durch Abstraktion, gemeinsame Muster und Optimierungstechniken.

Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile? Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile? Mar 18, 2025 pm 01:45 PM

In dem Artikel wird das Currying in JavaScript, einer Technik, die Multi-Argument-Funktionen in Einzelargument-Funktionssequenzen verwandelt. Es untersucht die Implementierung von Currying, Vorteile wie teilweise Anwendungen und praktische Verwendungen, Verbesserung des Code -Lesens

Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Mar 21, 2025 pm 06:23 PM

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Mar 19, 2025 pm 03:59 PM

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Mar 19, 2025 pm 04:10 PM

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Mar 19, 2025 pm 04:16 PM

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.

See all articles