Ich schreibe etwas javascript (jQuery), das ein div um ein checkbox herum aktiviert, wenn es angeklickt wird, schaltet das checkbox Element um. Das Problem, auf das ich stoße, ist jedoch, dass es nicht funktioniert, wenn man auf das Kontrollkästchen klickt, weil es zweimal umgeschaltet wird (zumindest denke ich, dass das passiert).
Hier ist der Code:
%Vor%Wie kann ich es so einrichten, dass das Anklicken des Kontrollkästchens wie gewohnt funktioniert, aber wenn Sie in den umgebenden Bereich klicken, wechselt das Kontrollkästchen?
Danke an jAndy's Kommentar, um zu zeigen, wie das geht, indem man die event.target -Eigenschaft überprüft:
%Vor%Und wie andere darauf hingewiesen haben, ist dies vielleicht nicht das beste Beispiel, da Sie die gleiche Funktionalität erhalten (ohne Javascript zu benötigen), indem Sie das Kontrollkästchen mit einem Label-Tag anstelle eines div-Tags umhüllen. Demo
Überprüfen Sie die Eigenschaft event.target
.
Die Eigenschaft
target
kann das Element sein, das für das Ereignis registriert wurde, oder ein Nachkomme davon. Es ist oft nützlich,event.target
mitthis
zu vergleichen, um festzustellen, ob das Ereignis aufgrund von Ereignisblasen behandelt wird.
Es hört sich so an, als ob Sie das Ereignis nicht bis zu den übergeordneten Elementen aufgehalten haben
Wie Sie das Bubbling von Ereignissen bei Checkbox-Klicks stoppen
Tags und Links javascript jquery