ExtJS 4 Panel Focus / Blur события не срабатывают - PullRequest
0 голосов
/ 10 декабря 2018

в 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) Я могу поместить в панель редактор расширенного текста и, вероятно, получить из него события фокусировки / размытия, но затем яУ меня есть целый ряд других проблем, которые нужно решить, начиная с того факта, что у меня действительно нет места для панели инструментов редактора форматированного текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...