Pregunta

Tengo algunos botones en la barra de herramientas inferior de un panel de cuadrícula que controlan agregar y eliminar registros de la cuadrícula de edición de filas.

Los controladores son bastante simples:El botón "nuevo" crea una instancia del modelo, la agrega a la cuadrícula y luego abre un editor de filas en la nueva fila;El botón "editar" simplemente abre el editor de filas de la fila seleccionada;"eliminar" destruye el registro de la tienda y actualiza la vista de cuadrícula.

Por alguna razón, estos botones no pierden la clase de enfoque que les da un borde cuando tienen el foco.Aquí hay una foto:

enter image description here

En la imagen, tanto el botón "Nuevo" como el botón "Eliminar" tienen la clase de enfoque, cuando presiono el botón "Editar" también mantiene las clases de enfoque incluso después de realizar una operación completa de edición de filas y cerrar el editor de filas.

Descubrí que cuando presiono el mouse sobre uno de estos botones permanentemente "enfocados" y luego lo alejo y luego hago clic en otra cosa, la clase de enfoque desaparece.

Sé que podría poner un controlador de desenfoque para todos los componentes de los botones en mis respectivos controladores, pero habría pensado que esta funcionalidad estaba integrada, así que pregunto si hay algo que me perdí en algún lugar de los documentos.

Las clases que no dejará escapar son estas:

x-focus x-btn-focus x-btn-default-toolbar-small-focus

Esto es con ExtJS 4.1.0 en FF10 en Windows 7.Pero noté un comportamiento similar en ExtJS 4.02 y 4.07, pero no he necesitado manejarlo hasta ahora.

¿Fue útil?

Solución

Descubrí lo que era:

En algún punto de la cadena del controlador para cada uno de estos botones, el botón se desactiva.Cuando un botón está deshabilitado en ExtJS, evita que blur evento de disparo.

Era necesario desactivar los botones por lo que la solución fue simplemente agregar button.blur() en el controlador era la forma correcta de hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top