1

Ext.util.KeyMap では defaultEventAction: 'preventDefault' を設定し、fn : 関数でも e.preventDefault(); を設定しましたが、ExtJS 4.1.1 を使用しています。まだクロムで新しいタブを開きますか?新しいタブを開くデフォルトのブラウザアクションではなく、キーが実装されているアクションをフィールドに実行させたいだけです。これはどのように可能ですか?

    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.');
            }
        }]
    });
});

どんな種類の助けも大歓迎です。

4

2 に答える 2

0

e.stopEvent(); が必要です。

これが私たちが使用するものです:

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
});
于 2012-08-13T14:22:24.323 に答える
0

このスレッドの Omnosis による回答を確認してください。このようなイベントのキャプチャに関する詳細な説明が記載されています。それが役に立てば幸い。

JavaScript キャプチャ ブラウザのショートカット (ctrl+t/n/w)

于 2012-08-13T14:07:01.650 に答える