Der beste Weg zu erkennen, auf welches Element geklickt wurde, ist das Ereignisziel zu analysieren (Klickereignis). Ich habe ein kleines Beispiel für diesen Fall vorbereitet. Sie können es im Code unten sehen.
%Vor%Diese JavaScript-Methode kann aufgerufen werden, bevor Sie Ihr Skript ausführen
Beispiel
%Vor%Ich hoffe, das hilft.
Ihr Problem besteht darin, dass das click
-Ereignis die Elementstruktur fortsetzt. Daher wird jedes Element, das ein Element enthält, auf das geklickt wurde, auch ein click
-Ereignis auslösen.
Die einfachste Lösung besteht darin, return false
Ihren Handler hinzuzufügen.
Wenn Sie jQuery verwenden, können Sie e.stopPropagation();
anders aufrufen, andernfalls müssen Sie e.stopPropagation()
aufrufen, falls vorhanden setze event.cancelBubble = true
.
Weitere Informationen finden Sie hier .
Was Sie damit zu tun haben, ist Event-Bubbling. Werfen Sie einen Blick auf diesen Artikel: Ссылка .
Um zu verhindern, dass das Ereignis an das übergeordnete Element übergeben wird, können Sie etwas wie folgt verwenden:
%Vor%Sie stoßen auf einen häufigen Fall der Ereignisausbreitung. Schauen Sie sich quirksmode.org an, um alle Details darüber zu erfahren, was gerade passiert. Was Sie im Click-Handler des kleineren DIVs tun müssen, ist im Wesentlichen:
%Vor%Wenn Sie sich dafür entscheiden, eine Javascript-Bibliothek wie www.jquery.com zu verwenden, können Sie mit den Optionen zur Propagierungsprävention leicht erreichen, was Sie zu tun versuchen.
Tags und Links javascript html onclick