添加键映射

时间:2015-09-04 12:34:39

标签: javascript extjs

我收到错误消息:TypeError: me.target is null 我的函数接收第一个参数,一个数组包含一些元素上的一些id(以及第二个参数,一个包含快捷键的字符串)。

我得到的元素如下:var target = Ext.getCmp(array[k]); 在控制台中运行此目标,目标确实已创建,并显示为具有多个属性的对象,此处包括id。所以我不知道为什么Extjs说目标是空的。有人可以帮忙吗?

      function addKeyMap(array, key) {
             for(var k = 0; k < array.length; k++) {
                    var target = Ext.getCmp(array[k]);                       

                    var map = new Ext.KeyMap ({
                        target: target.id,
                        key: key.charAt(k),
                        fn: function() {
                            alert("Parent works!!!");                                                                         
                        }
                    });
                }

1 个答案:

答案 0 :(得分:1)

当组件尚未创建/加载时,似乎过早地运行addKeyMap函数。

这可以解释为什么Ext.getCmp()稍后会使用控制台。

将ExtKonMap函数调用封装在Ext.onReady中,如下所示:

Ext.onReady(function(){

addKeyMap([...]);

});

通过这种方式,您可以确定,在运行addKeyMap函数时,每个组件都已实例化/页面已完成加载。