Zuweisen eines click-event-handlers in ein click-event

8

Ich habe seltsames Verhalten beim Umgang mit Klickereignissen in jQuery festgestellt.

Sieh dir diese Geige an

%Vor%

Dieser Code bindet einen click-event-handler an eine Schaltfläche. Wenn Sie auf diesen Link klicken, sollte dem Dokument ein Ereignishandler hinzugefügt werden, der beim nächsten Klicken auf das Dokument "angeklickt" wird.

Aber wenn Sie auf diese Schaltfläche klicken, wird "geklickt" sofort ohne weiteren Klick alarmiert. Offensichtlich wird das Click-Ereignis, das den neuen Handler an das Dokument bindet, in das Dokument gesprudelt und führt sofort den gerade zugewiesenen Handler aus.

Dieses Verhalten scheint sehr kontraintuitiv zu sein. Meine Absicht war, ein Element zu zeigen, wenn ich auf die Schaltfläche klicke und sie wieder verberge, wenn ich außerhalb dieses Elements klicke.

%Vor%

Dies führt jedoch dazu, dass das Element sofort ausgeblendet wird.

Hat jemand eine Lösung für dieses Problem?

    
Lars Ebert 11.09.2013, 08:31
quelle

3 Antworten

14

Es kann verhindert werden, dass sich das Ereignis im DOM ausbreitet.

%Vor%

JS Geige: Ссылка

    
Kevin Bowersox 11.09.2013, 08:35
quelle
1

können Sie bitte diesen Code Demo

überprüfen

HTML-Code

%Vor%

Jquery

%Vor%

CSS

%Vor%     
Shakti Patel 11.09.2013 08:48
quelle
1

Stoppt es mit stopPropagation :) bubble.

editierte Geige mit eingebautem Element-Hiding.

Ссылка

    
user2375017 11.09.2013 08:41
quelle

Tags und Links