我收到错误消息: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!!!");
}
});
}
答案 0 :(得分:1)
当组件尚未创建/加载时,似乎过早地运行addKeyMap函数。
这可以解释为什么Ext.getCmp()稍后会使用控制台。
将ExtKonMap函数调用封装在Ext.onReady中,如下所示:
Ext.onReady(function(){
addKeyMap([...]);
});
通过这种方式,您可以确定,在运行addKeyMap函数时,每个组件都已实例化/页面已完成加载。