【问题标题】:Extjs keymap does not work with 6.5.1 modernExtjs 键盘映射不适用于 6.5.1 现代
【发布时间】:2021-03-25 10:22:16
【问题描述】:

我使用带有现代工具包的版本 6.5.1 的 sencha extJs,我遇到的问题是过去使用键盘映射处理键盘事件,现在不再工作了。我不能说它到底什么时候不再起作用,我只知道它肯定在 2020 年 10 月 14 日以及该日期之后的某个时间起作用。我将它用作参数,例如在对话框中,如下所示:

   keyMap: {
        ENTER: {
           handler: function (e, view) {
              console.log("ENTER CLICKED");
           }
        }
     }

它不适用于 10 月 14 日的代码库,所以我认为我的代码没有问题。我无法解释是什么情况导致它停止工作。

我创建了一个 example sencha fiddle 使用 6.5.1 版现代工具包,但当您将版本更改为经典 6.5.1 时,它不起作用。

您知道问题出在哪里吗?或者您能帮我解决问题吗?

【问题讨论】:

    标签: extjs


    【解决方案1】:

    由于对话框容器没有打开焦点,因此不会触发键盘事件。通过设置 focusable 和 tabIndex 或在绘制的事件上为其中的任何可聚焦控件设置焦点,使容器获得焦点。

                focusable: true, //required
                tabIndex: 1, //required
                keyMap: {
                    A: {//65
                        scope: this,
                        //event: 'keydown',
                        handler: function () {
                            Ext.Msg.alert('key pressed', 'you have pressed a');
                            console.log("a pressed")
                        }
                    },
                    ENTER: { //13
                        scope: this,
                        //event: 'keypress',
                        handler: function () {
                            Ext.Msg.alert('key pressed', 'you have pressed enter');
                            console.log("enter pressed")
                        }
                    }
                }
    

    看看这个 Keymap Fiddle viewer / Editor

    【讨论】:

    • 非常感谢您的帮助,这很有效。我仍然想知道为什么它在过去有效,但这已经不重要了。
    • SDK 可能有问题尝试在客户论坛中提出问题..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多