首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Extjs KeyMap不对defaultEventAction执行操作,而是执行默认的浏览器操作

Extjs KeyMap不对defaultEventAction执行操作,而是执行默认的浏览器操作
EN

Stack Overflow用户
提问于 2012-08-13 11:57:12
回答 2查看 2.1K关注 0票数 1

使用ExtJS 4.1.1,即使在Ext.util.KeyMap中,我已经设置了defaultEventAction:'preventDefault‘,在fn :preventDefault中也设置了e.preventDefault();但是它仍然打开了chrome?中的新选项卡,我只希望字段执行操作fn,键是为其实现的,而不是打开新选项卡的默认浏览器操作。这怎么可能?

代码语言:javascript
复制
    Ext.onReady(function () {

    var bcTextField = Ext.create('Ext.form.Text', {
        xtype: 'textfield',
        renderTo: 'console-output',
        emptyText: 'Enter Barcode/Accession Number',
        width: 200,
        margin: '0'
    });
    var map = new Ext.util.KeyMap({
        target: bcTextField.getEl(),
        binding: [{
            key: "t",
            ctrl: true,
            scope: this,
            defaultEventAction: 'preventDefault',
            fn: function (key, e) {
                e.preventDefault();
                alert('Ctrl + t was pressed.');
            }
        }]
    });
});

任何帮助都是值得感激的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-13 14:07:01

在这个线程中检查Omnosis的答案。给出了捕获此类事件的详细描述。希望能帮上忙。

javascript capture browser shortcuts (ctrl+t/n/w)

票数 0
EN

Stack Overflow用户

发布于 2012-08-13 14:22:24

您需要e.stopEvent();

这就是我们所使用的:

代码语言:javascript
复制
var map = new Ext.util.KeyMap({
    target: Ext.getBody(),
    binding: [{
        key: Ext.EventObject.F,
        ctrl: true,
        fn: function (key, e) {
            e.stopEvent(); //This stops the default behaviour ;-)
            //logic here...
        }
    }],
    scope: me
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11933854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档