EXT核心API详解(七)_Ext.KeyNav/Ext.KeyMap

Ext.KeyNav
Ext的keyNav类能为Ext.Element元素提供简单的按键处理方法
例:
var el=Ext.get("textarea");
new Ext.KeyNav(el, {
    "left" : function(e){
        alert("left key down");
        },
    scope : el
    }
);
它的行为与KeyMap类似,但功能比KeyMap要弱小的多,只能处理以下已定义键
enter/left/right/up/down/tab/esc/pageUp/pageDown/del/home/end
同情一下KeyNav

方法只有三个,不用多解释
KeyNav( Mixed el, Object config )
disable() : void
enable() : void


Ext.KeyMap类
则强悍的多,其中最重要的当然是对按键的定义更灵活
例:上例用KeyMap来写可能是
var el=Ext.get("textarea");
new Ext.KeyMap(el, {
        key:Ext.EventObject.LEFT,
        fn: function(e){
            alert("left key down");
        },
        scope : el
    }
);

方法
KeyMap( Mixed el, Object config, [String eventName] )
构造,与KeyNav也相似,但更灵活
它是{
key:        String/Array,     //可以是数字,字符,也可以是Ext.EventObject.LEFT这样的助记符,还能是他们组成的数组
shift:       Boolean,          //ctrl键按下?
ctrl:        Boolean,
alt :        Boolean,
fn :        Function,         //回叫方法
scope:       Object          //范围
}这样的对象或它们组成的数组
比如{key: 10},{key: [10,13]},{key:'\t'},{key:'abcd'},{key:Ext.EventObject.LEFT}都是合法的定义
addBinding( Object/Array config ) : void
增加新的绑定动作 config参见构造
disable() : void
enable() : void
isEnabled() : Boolean

允许,静止和状态查询
on( Number/Array/Object key, Function fn, [Object scope] ) : void
只添加一个处理时addBinding的快捷方式,但个人感觉并没有简单到哪儿去。

你可能感兴趣的:(ext,UP)