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.
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.
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(); });
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!