Zwei differents OnKlicke auf zwei divs, eine über der anderen

8

Ich habe zwei divs, eine große und eine kleinere gegenüber der anderen, jedes div hat seine eigene OnClick-Methode. Das Problem, das ich habe, ist, wenn ich das kleinere div klickte, die OnClick Methode des großen Divs wird auch genannt.

Wer kann ich das vermeiden?

    
Santiago 06.01.2010, 17:54
quelle

5 Antworten

6

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.

    
Senad Meškin 06.01.2010, 18:26
quelle
5

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 .

    
SLaks 06.01.2010 17:56
quelle
3

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%     
Tatu Ulmanen 06.01.2010 17:58
quelle
2

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%     
Shawn Steward 06.01.2010 17:59
quelle
0

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.

    
code_burgar 06.01.2010 17:58
quelle

Tags und Links