2

在 Ext.panel 组件中,有一个名为 expand(Ext.panel p) 的事件。

现在我有 2 个面板,A 和 B。要求它们都应该一起展开和折叠。因此,当我扩展 A 时,我还需要为 B 触发“扩展”事件。这应该反过来触发 B 的事件处理程序。所以语法(请帮助我):

A.on('expand', userPanelExpand)//event handler for A that performs some logic

现在如何为 B 添加一个 fireEvent('expand')?它应该是:

A.on('expand', userPanelExpand);
function userPanelExpand(){
//some logic
this.fireEvent('expand', this.B);
}

这里有些不对劲。我在最后一行收到 Stackvoerflow 错误。

4

1 回答 1

1
A.on('expand', userPanelExpand, this);
B.on('expand', userPanelExpand, this);

// this will not go into recursion because if panel is already expanded then expand event will not be fired if we call panel.expand()
function userPanelExpand(panel) {
   if(panel === A) {
      B.expand();
   } else {
      A.expand();
   }
}
于 2012-04-09T18:36:43.073 回答