Ember.js: Kontrollkästchen können nicht angeklickt werden, wenn sie in einem Element enthalten sind, an das eine Aktion angehängt ist.

Erstellt am 4. Dez. 2014  ·  4Kommentare  ·  Quelle: emberjs/ember.js

Einfaches Beispiel,

mit einem darin enthaltenen Eingabe-Tag type="checkbox". Das Kontrollkästchen ist wie erwartet anklickbar. Setzen Sie nun eine Aktion auf das enthaltende Div, um beispielsweise Klickereignisse abzufangen... das Kontrollkästchen ist jetzt nicht mehr anklickbar. Sie können das 'change'-Ereignis abfangen und sehen, dass es versucht, wie erwartet zu funktionieren, aber jedes Mal zurückgesetzt wird. Paar Geigen unten:

funktioniert wie erwartet....
http://jsfiddle.net/yp128r1e/

nicht...
http://jsfiddle.net/yp128r1e/1/

Bug

Hilfreichster Kommentar

Standardmäßig verhindert der Aktionshelfer die Standardaktion. In diesem Fall bedeutet dies, dass Checkboxen nicht ausgelöst werden. Sie können dies überschreiben, indem Sie preventsDefault=false für den Helfer festlegen. Siehe http://jsfiddle.net/yp128r1e/3/.

Alle 4 Kommentare

@hilem Dies ist nicht bei allen Ereignistypen ein Problem. Es scheint speziell ein Problem mit Klick zu sein. Ich vermute, dass Ember das Standardereignisverhalten verhindert, das der Browser annimmt, um zu bedeuten, dass das Kontrollkästchen den Status nicht ändern sollte. Ich glaube nicht, dass das ein Bug ist. Die Lösung wäre, einen Aktionshandler nicht auf diese Weise anzuwenden, wenn Sie auch andere Dinge wie Kontrollkästchen behandeln möchten.

@wagenet Dies ist ein sehr häufiges Designmuster. Um in der Lage zu sein, auf eine beliebige Stelle in einer Zeile zu klicken, um eine Zeile auszuwählen, und nicht nur auf das Kontrollkästchen der Zeile. Das Kontrollkästchen wurde nur hinzugefügt, um zu betonen, dass es auswählbar ist und aus Gründen der Zugänglichkeit, und Sie sagen mir, dass die einzige Möglichkeit, damit umzugehen, darin besteht, kein Kontrollkästchen zu verwenden, sondern ein Kontrollkästchen mit Bildern oder was auch immer zu fälschen. Denn anders geht das nicht. Das belastet den Test der Zugänglichkeit stark, der ansonsten in Ordnung wäre. Übrigens ist dies bei anderen Formularelementen kein Problem. Ich habe dieses Verhalten nur mit der Checkbox entdeckt. Es ist eine Sache zu sagen, dass Ember dieses Problem eine Weile angehen muss, da es zu schwierig ist, mit der Art und Weise umzugehen, wie der Code derzeit aufgebaut ist, aber ich sehe nicht, wie Sie argumentieren können, dass dies kein Fehler ist.

Standardmäßig verhindert der Aktionshelfer die Standardaktion. In diesem Fall bedeutet dies, dass Checkboxen nicht ausgelöst werden. Sie können dies überschreiben, indem Sie preventsDefault=false für den Helfer festlegen. Siehe http://jsfiddle.net/yp128r1e/3/.

Danke @wagenet !

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen