Heim >Web-Frontend >js-Tutorial >Wie kann verhindert werden, dass untergeordnete Ankerklicks übergeordnete Klickereignisse auslösen?

Wie kann verhindert werden, dass untergeordnete Ankerklicks übergeordnete Klickereignisse auslösen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 18:39:09699Durchsuche

How to Prevent Child Anchor Clicks from Triggering Parent Click Events?

Verhindern, dass untergeordnete Anker-Klickereignisse ein übergeordnetes Klickereignis auslösen

Wie Ihr Code zeigt, wenn auf ein untergeordnetes Ankerelement innerhalb eines übergeordneten Div geklickt wird Bei einem Onclick-Ereignis werden beide Ereignisse ausgelöst. Um dieses Problem zu beheben und die Ausführung des übergeordneten Klickereignisses zu verhindern, haben Sie zwei Möglichkeiten:

Option 1: Überprüfen Sie den Ereignisursprung

Durch Untersuchen des von jQuery übergebenen Eventargs-Objekts , können Sie das Element bestimmen, das den Klick ausgelöst hat:

$("#clickable").click(function(e) {
    if($(e.target).is("div")) {
        window.location = url;
        return true;
    }
});

Wenn das Absenderelement nicht das Div selbst ist, ist es das Div Der onclick-Handler wird nicht ausgelöst.

Option 2: Ereignis-Bubbling stoppen

Alternativ können Sie verhindern, dass das Click-Ereignis zum übergeordneten Element sprudelt, indem Sie stopPropagation( )-Methode für den untergeordneten Anker:

$("#clickable a").click(function(e) {
    // Custom anchor handler
    e.stopPropagation();
});

Diese Methode verhindert, dass das Ereignis an das übergeordnete Div weitergegeben wird, und stellt dies sicher Nur das Ankerklick-Ereignis wird ausgelöst.

Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass untergeordnete Ankerklicks übergeordnete Klickereignisse auslösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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