2012-04-09 4 views
2

В компоненте Ext.panel есть событие с именем expand (Ext.panel p).EXTJS fireEvent

Теперь у меня есть 2 панели, A и B. Требование состоит в том, чтобы оба они должны расширяться и сворачиваться вместе. Поэтому, когда я расширяю A, мне также нужно запустить событие «expand» для B. Это в свою очередь должно сгореть обработчик события B. Так синтаксис (пожалуйста, помогите мне с этим):

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

Теперь, как я могу добавить fireEvent («расширение») для B? Следует ли читать:

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

Что-то не в порядке. Я получаю ошибку Stackvoerflow на последней строке.

ответ

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(); 
    } 
} 
Смежные вопросы