Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann verhindert werden, dass übergeordnete Ereignishandler ausgeführt werden, wenn ein untergeordnetes Ereignis in verschachtelten DOM-Objekten ausgelöst wird?

Susan Sarandon
Freigeben: 2024-11-24 08:45:11
Original
223 Leute haben es durchsucht

How to Prevent Parent Event Handlers from Executing When a Child Event is Triggered in Nested DOM Objects?

Ereignisfortschritt in verschachtelten DOM-Objekten beibehalten

In einer verschachtelten DOM-Struktur, in der Ereignishandler auf mehreren Ebenen definiert sind, ist es oft wünschenswert, dies zu verhindern die Ausführung übergeordneter Event-Handler, wenn ein untergeordnetes Ereignis ausgelöst wird. Betrachten Sie das folgende Beispiel:

<div><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><div>
Nach dem Login kopieren


In dieser Struktur ein Klick ruft für jedes div-Element die Funktion „func“ auf. Es gibt jedoch ein Problem: Ein Klick auf „b“ oder „c“ löst die Funktion „func“ sowohl für das angeklickte Div als auch für sein übergeordnetes Div „a“ aus.

Lösung: Ereignisausbreitungskontrolle

jQuery bietet eine Methode zur Verhinderung der Ausbreitung von Ereignissen im DOM-Baum. Indem Sie den folgenden Code hinzufügen, bevor Sie die Ereignishandler definieren:

$('#a').add('#b').click(function(event) {
    event.stopPropagation();
});
Nach dem Login kopieren

Sie können verhindern, dass Klicks auf „b“ oder „c“ das Ereignis an das übergeordnete Ereignis „a“ weitergeben. Dadurch wird sichergestellt, dass nur die Funktion des angeklickten untergeordneten Divs ausgeführt wird.

Durch die Steuerung der Ereignisausbreitung können Sie den gewünschten Ereignisfluss in Ihrer verschachtelten DOM-Struktur aufrechterhalten und unbeabsichtigte Funktionsausführungen verhindern.

Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass übergeordnete Ereignishandler ausgeführt werden, wenn ein untergeordnetes Ereignis in verschachtelten DOM-Objekten ausgelöst wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Vorheriger Artikel:Optimierung externer Bibliotheken mit dem Defer-Attribut: Steigerung der Seitengeschwindigkeit Nächster Artikel:Wie kann ich die Iframe-Höhe dynamisch anpassen, um Bildlaufleisten mithilfe von jQuery oder JavaScript zu verhindern?
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
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage