fireEvent出现菜单侦听器错误

问题描述 投票:0回答:1
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)

它在哪里失败。

尝试在事件侦听器内调用事件时,是否存在某种范围界定/嵌套问题?

我的目标是在按钮的菜单项选择上触发该事件。

extjs scope dom-events extjs3
1个回答
0
投票

显然是由于未定义的处理程序。

处理程序是使用]设置的

this.on()

在超类初始化之前的initComponent中。

© www.soinside.com 2019 - 2024. All rights reserved.