Heim >Web-Frontend >js-Tutorial >Wie kann verhindert werden, dass untergeordnete Ankerklicks übergeordnete Klickereignisse auslösen?
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!