в ExtJS 5+ вы можете использовать параметры "focusable" и "tabIndex", чтобы создать объект Ext.panel.Panel для событий фокусировки / размытия, как показано в связанной скрипте 5.1.Связанная скрипта 4.2 пытается выполнить то же поведение и не работает.
https://fiddle.sencha.com/#fiddle/1fbf&view/editor (5.1-скрипка)
https://fiddle.sencha.com/#fiddle/2ob6&view/editor (4.2-скрипта)
Есть ли хороший способ сделать это в ExtJS 4.2?
Мой пример кода (такой же, как у скрипки) выглядит следующим образом:
Ext.application({
name: 'Fiddle',
launch: function () {
var panel = Ext.create('Ext.panel.Panel', {
renderTo: Ext.getBody(),
title: 'Focus Panel',
height: 300,
width: 400,
// Key attributes
focusable: true,
tabIndex: 1,
/////////////////
html: 'BLURRED',
listeners: {
focus: function () {
this.setHtml('FOCUSED');
},
blur: function () {
this.setHtml('BLURRED');
}
}
});
var panel2 = Ext.create('Ext.panel.Panel', {
renderTo: Ext.getBody(),
title: 'Focus Panel 2',
height: 300,
width: 400,
// Key attributes
focusable: true,
tabIndex: 2,
/////////////////
html: 'BLURRED',
listeners: {
focus: function () {
this.setHtml('FOCUSED');
},
blur: function () {
this.setHtml('BLURRED');
}
}
});
}
});
Я пробовал следующие способы:
1) Непосредственное использование панелей размытия /фокус событий.Это то, что я специально спрашиваю здесь.
2) Создание div с использованием атрибута Panel html и непосредственное присвоение события div с использованием атрибута div onblur.
3) Передача событий фокуса и размытия в div.Это работает для события щелчка, но не для событий фокуса или размытия.
4) Самое успешное, что я когда-либо делал, - это использование события щелчка, чтобы заменить div полем ввода, отображающим простой текстпанелей HTML.После внесения изменений я могу использовать событие размытия полей ввода для изменения курса и отображения HTML-кода прямо на панели.Этот вид работает - но поле ввода просто отображает простой текст ...
5) Я могу поместить в панель редактор расширенного текста и, вероятно, получить из него события фокусировки / размытия, но затем яУ меня есть целый ряд других проблем, которые нужно решить, начиная с того факта, что у меня действительно нет места для панели инструментов редактора форматированного текста.