Кнопки сохраняют свой класс фокуса после потери фокуса
Вопрос
У меня есть несколько кнопок на нижней панели инструментов сетки, которые управляют добавлением и удалением записей из сетки редактирования строк.
Обработчики довольно просты:кнопка «новая» создает экземпляр модели, добавляет ее в сетку, а затем открывает редактор строк в новой строке;кнопка «редактировать» просто открывает редактор строк выбранной строки;«Удалить» удаляет запись из хранилища и обновляет представление сетки.
По какой-то причине эти кнопки не теряют класс фокуса, который дает им границу, когда они находятся в фокусе.Вот изображение:
На рисунке и кнопка «Создать», и кнопка «Удалить» имеют класс фокуса, когда я нажимаю кнопку «Изменить», она также сохраняет классы фокуса даже после выполнения полной операции редактирования строки и закрытия редактора строк.
Я обнаружил, что когда я нажимаю курсор мыши на одну из этих постоянно «сфокусированных» кнопок, затем поднимаю курсор мыши от нее и затем нажимаю что-нибудь еще, класс фокуса исчезает.
Я знаю, что мог бы добавить обработчик размытия для всех компонентов кнопок в моих соответствующих контроллерах, но я бы подумал, что эта функция встроена, поэтому прошу посмотреть, не пропустил ли я где-нибудь в документации что-то.
Классы, которые он не отпустит:
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()
в обработчике был правильный способ сделать это.