Кнопки сохраняют свой класс фокуса после потери фокуса

StackOverflow https://stackoverflow.com//questions/10680122

Вопрос

У меня есть несколько кнопок на нижней панели инструментов сетки, которые управляют добавлением и удалением записей из сетки редактирования строк.

Обработчики довольно просты:кнопка «новая» создает экземпляр модели, добавляет ее в сетку, а затем открывает редактор строк в новой строке;кнопка «редактировать» просто открывает редактор строк выбранной строки;«Удалить» удаляет запись из хранилища и обновляет представление сетки.

По какой-то причине эти кнопки не теряют класс фокуса, который дает им границу, когда они находятся в фокусе.Вот изображение:

enter image description here

На рисунке и кнопка «Создать», и кнопка «Удалить» имеют класс фокуса, когда я нажимаю кнопку «Изменить», она также сохраняет классы фокуса даже после выполнения полной операции редактирования строки и закрытия редактора строк.

Я обнаружил, что когда я нажимаю курсор мыши на одну из этих постоянно «сфокусированных» кнопок, затем поднимаю курсор мыши от нее и затем нажимаю что-нибудь еще, класс фокуса исчезает.

Я знаю, что мог бы добавить обработчик размытия для всех компонентов кнопок в моих соответствующих контроллерах, но я бы подумал, что эта функция встроена, поэтому прошу посмотреть, не пропустил ли я где-нибудь в документации что-то.

Классы, которые он не отпустит:

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

Это с ExtJS 4.1.0 в FF10 в Windows 7.Но я заметил подобное поведение в ExtJS 4.02 и 4.07, просто до сих пор мне не приходилось с этим справляться.

Это было полезно?

Решение

Я узнал, что это было:

В какой-то момент цепочки обработчиков каждой из этих кнопок кнопка отключается.Когда кнопка отключена в ExtJS, это предотвращает blur событие от стрельбы.

Пришлось кнопки отключить поэтому решение просто добавить button.blur() в обработчике был правильный способ сделать это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top