Heim > Web-Frontend > js-Tutorial > Wie kann ich die Ereignisweitergabe in verschachtelten Elementen mit Inline-Onclick-Handlern verhindern?

Wie kann ich die Ereignisweitergabe in verschachtelten Elementen mit Inline-Onclick-Handlern verhindern?

Mary-Kate Olsen
Freigeben: 2024-12-06 01:00:12
Original
172 Leute haben es durchsucht

How Can I Prevent Event Propagation in Nested Elements with Inline onclick Handlers?

Verhindern der Ereignisweitergabe mit Inline-Onclick-Attributen

Wenn mehrere Elemente ineinander verschachtelt sind und über eigene Onclick-Ereignishandler verfügen, ist dies möglich Ereignisse, die sich in der DOM-Hierarchie nach oben verbreiten und Handler für übergeordnete Elemente auslösen. Während dieses Verhalten in manchen Fällen wünschenswert sein kann, kann es in anderen Fällen notwendig sein, diese Ausbreitung zu verhindern.

Beispiel:

Bedenken Sie den folgenden Codeausschnitt:

<div onclick="alert('you clicked the header')" class="header">
  <span onclick="alert('you clicked inside the header');">something inside the header</span>
</div>
Nach dem Login kopieren

Wenn der Benutzer auf den Span klickt, löst er sowohl den Onclick-Ereignishandler des Spans als auch das Onclick-Ereignis des Div aus Handler. Um die Weitergabe des Ereignisses an das Div zu verhindern, können wir eine der folgenden Methoden verwenden:

1. event.stopPropagation()

Diese Methode verhindert, dass sich das Ereignis weiter oben im DOM-Baum ausbreitet.

<span onclick="event.stopPropagation(); alert('you clicked inside the header');">something inside the header</span>
Nach dem Login kopieren

2. window.event.cancelBubble (für IE)

Für Internet Explorer ist die entsprechende Methode window.event.cancelBubble.

<span onclick="window.event.cancelBubble = true; alert('you clicked inside the header');">something inside the header</span>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die Ereignisweitergabe in verschachtelten Elementen mit Inline-Onclick-Handlern verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage