Heim > Web-Frontend > js-Tutorial > Wie kann verhindert werden, dass übergeordnete Klickereignisse ausgelöst werden, wenn auf untergeordnete Anker geklickt wird?

Wie kann verhindert werden, dass übergeordnete Klickereignisse ausgelöst werden, wenn auf untergeordnete Anker geklickt wird?

Mary-Kate Olsen
Freigeben: 2024-12-19 22:19:15
Original
243 Leute haben es durchsucht

How to Prevent Parent Click Events from Firing When Child Anchors Are Clicked?

Verhindern von übergeordneten Klickereignissen, wenn auf untergeordnete Anker geklickt wird

Beim Einbinden anklickbarer Elemente in übergeordnete Elemente und deren untergeordnete Elemente kommt es häufig zu einem Szenario, in dem sowohl das übergeordnete als auch das untergeordnete Element vorhanden sind Klickereignisse werden gleichzeitig ausgelöst. Dieses Verhalten tritt aufgrund der sprudelnden Natur von Ereignissen im DOM auf.

Um zu verhindern, dass das Klickereignis des übergeordneten Elements in solchen Fällen ausgelöst wird, können mehrere Lösungen eingesetzt werden.

Überprüfen des Ereignisursprungs

Die Verwendung der e.target-Eigenschaft im Click-Event-Handler des übergeordneten Elements ermöglicht die Identifizierung des tatsächlichen Elements, das das Ereignis auslöst. Durch den Vergleich von e.target mit dem übergeordneten Element kann festgestellt werden, ob der Klick vom übergeordneten Element oder von einer anderen Stelle darin stammt.

Ereignisweitergabe stoppen

Alternativ können Sie einen Klick-Ereignishandler an das anhängen Untergeordnete Anker und der darin enthaltene Aufruf von e.stopPropagation() verhindern, dass das Ereignis zum übergeordneten Anker übergeht. Auf diese Weise wird das Klickereignis des übergeordneten Elements nicht ausgelöst, wenn auf dessen untergeordnete Anker geklickt wird.

Codebeispiel:

$("#clickable").click(function(e) {
    if ($(e.target).is("div")) {  // Check if the event originated from the <div>
        window.location = url;
        return true;
    }
});

$("#clickable a").click(function(e) {
    // Do something specific to the anchor
    e.stopPropagation();
});
Nach dem Login kopieren

Durch die Anwendung einer dieser Methoden Es wird möglich, Klickereignisse basierend auf dem Zielelement selektiv zu verarbeiten und sicherzustellen, dass das Klickereignis des übergeordneten Elements nur dann ausgelöst wird, wenn es das beabsichtigte Ziel ist.

Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass übergeordnete Klickereignisse ausgelöst werden, wenn auf untergeordnete Anker geklickt wird?. 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