0

私が試したこと:

    new Ext.util.KeyMap({
        target: 'search',
        eventName: 'itemkeydown',
        binding: [
            {
                key: Ext.EventObject.ESC,
                scope: this,
                fn: function() {
                    console.log('esc');
                },
                defaultEventAction: 'preventDefault'
            }
        ]
    });

ここsearchで、idは要素のです。要素にバインドされていませんが、フォーカスを渡しますが、を押しESCAPEてコールバックは発生しません。

私は何を逃しましたか?

PS:私も同じ結果のExt.get('search')代わりに試しました。search

PPS:search要素はExtJSコントロールではなく、通常のものです<input type="text" ...>

4

1 に答える 1

3

これが私の作業コードです:

var map = new Ext.util.KeyMap({
    target: 'search',
    eventName: 'keydown', // changed from itemkeydown -> keydown
    binding: [{
            key: Ext.EventObject.ESC,
            scope: this,
            fn: function() {
                console.log('esc');
            },
            defaultEventAction: 'preventDefault'
        }
    ]
});

私のHTML要素は次のとおりです。

<input type="text" id="search"/>

keydownのデフォルト値のようですeventName。コードはそれなしで動作します。4.0スタイルを使用して動作させることもできます。

var map = new Ext.util.KeyMap("search", {
    key: Ext.EventObject.ESC,
    handler: function() {
        console.log('esc');
    },
    scope: this,
    defaultEventAction: 'preventDefault'
});
于 2012-05-24T06:36:55.007 に答える