return new Ext.Button({
text: cfg.text,
menu: {
xtype: 'menu',
items: cfg.menu,
listeners: {
itemclick: {
fn: function() {
console.log(this);
this.fireEvent('tabchange', 'apps');
},
scope: this
},
scope: this
},
scope: this
},
minWidth: 50,
scope: this
});
cfg作为函数的参数。都在那里。Console.log有效-因此直到那时的代码也可以正常工作。这似乎是在正确的范围内。
但是,fireEvent的最终结果是:
未捕获的TypeError:无法读取未定义的属性“ apply”
在错误日志中的调用之后,fireEvent确实被执行,它到达
EXTUTIL.Event.fire
if(l && l.fireFn.apply(l.scope || me.obj || window, args) === FALSE)
是它失败的地方。
尝试在事件监听器中调用事件时,是否存在某种范围界定/嵌套问题?
我的目标是在按钮的菜单项选择上触发该事件。
显然是由于未定义的处理程序。
处理程序是使用设置的
this.on()
在超类init之前的initComponent中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句