Ember.js: Casillas de verificación en las que no se puede hacer clic si se encuentran dentro de un elemento que tiene una acción adjunta.

Creado en 4 dic. 2014  ·  4Comentarios  ·  Fuente: emberjs/ember.js

Ejemplo simple,

con una etiqueta de entrada de tipo = "casilla de verificación" contenida en su interior. Se puede hacer clic en la casilla de verificación como se esperaba. Ahora coloque una acción en el div que lo contiene, digamos para capturar eventos de clic ... la casilla de verificación ahora no se puede hacer clic. Puede detectar el evento 'cambio' y ver que intenta funcionar como se esperaba, pero se revierte cada vez. Par de violines a continuación:

funciona como se esperaba ...
http://jsfiddle.net/yp128r1e/

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

Bug

Comentario más útil

De forma predeterminada, el asistente de acción evita la acción predeterminada. En este caso, eso significa que las casillas de verificación no se activarán. Puede anular esto configurando preventsDefault=false en el asistente. Consulte http://jsfiddle.net/yp128r1e/3/.

Todos 4 comentarios

@hilem En realidad, esto no es un problema con todos los tipos de eventos. Parece ser específicamente un problema con el clic. Sospecho que Ember está impidiendo el comportamiento de evento predeterminado que el navegador considera que la casilla de verificación no debería cambiar de estado. No creo que esto sea un error. La solución sería no aplicar un controlador de acciones de esta manera si también desea manejar otras cosas como casillas de verificación.

@wagenet Este es un patrón de diseño muy común. Para poder hacer clic en cualquier lugar de una fila para seleccionar una fila y no solo la casilla de verificación de la fila. La casilla de verificación se agrega simplemente para reforzar que es seleccionable y por razones de accesibilidad, y lo que me está diciendo es que la única forma de lidiar con ella es básicamente no usar una casilla de verificación, sino falsificar una casilla de verificación con imágenes o lo que sea. Como no hay otra forma de manejar esto. Lo que supone una gran carga para las pruebas de accesibilidad que, de otro modo, estarían bien. Por cierto, esto no es un problema con otros elementos de formulario. Solo he detectado este comportamiento con la casilla de verificación. Una cosa es decir que Ember necesita apostar sobre este tema por un tiempo, ya que es demasiado difícil de manejar la forma en que está diseñado el código actualmente, pero no veo cómo se puede argumentar que esto no es un error.

De forma predeterminada, el asistente de acción evita la acción predeterminada. En este caso, eso significa que las casillas de verificación no se activarán. Puede anular esto configurando preventsDefault=false en el asistente. Consulte http://jsfiddle.net/yp128r1e/3/.

¡Gracias @wagenet !

¿Fue útil esta página
0 / 5 - 0 calificaciones