Ich habe den folgenden vereinfachten html:
%Vor%Das Klicken auf das 200x200 div 'foo' funktioniert gut und löst das click -Ereignis für das Kontrollkästchen darin aus.
Wenn ich jedoch genau auf das Kontrollkästchen klicke, feuert es sein "normales" Ereignis, plus das oben erwähnte jquery-gebundene Ereignis, was bedeutet, dass das Kontrollkästchen sich selbst überprüft und sich dann selbst abmeldet.
Gibt es einen ordentlichen Weg, dies zu verhindern?
Ereignisse bubble. Sie müssten den e.target
, auf den geklickt wurde, testen.
Und wenn Sie nur versuchen, das Kontrollkästchen zu aktivieren / deaktivieren, sollten Sie seine Eigenschaft checked
festlegen.
BEARBEITEN: Einige Fehler wurden behoben.
Arbeitsdemo: Ссылка
Sie müssen den Klick auf das Kontrollkästchen stoppen, damit es nicht zum Div aufbläht.
%Vor%Es passiert, weil, wenn Sie auf das Kontrollkästchen klicken Sie auch auf das div klicken, weil das Kontrollkästchen darin ist. Also, was Sie tun sollten, ist zu erfassen, wenn der Benutzer das Innere der div aber das Kontrollkästchen nicht klickt. Wenn der Benutzer auf das Kontrollkästchen klickt, verhält er sich mit seinem Standardverhalten, indem er das Kontrollkästchen
aktiviert / deaktiviert %Vor%