EXTJS fireEvent

时间:2012-04-09 16:16:16

标签: event-handling extjs3

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

现在我有2个面板,A和B.要求是它们都应该展开和折叠在一起。因此,当我扩展A时,我还需要为B启动'expand'事件。这应该反过来触发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错误。

1 个答案:

答案 0 :(得分: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();
   }
}