Я использую ExtJS для создания окна, содержащего несколько панелей в качестве элементов.Одна из этих панелей содержит кнопку.
Я хочу прикрепить обработчик к своей кнопке так, чтобы при нажатии на кнопку я мог скрыть окно, содержащее вышеупомянутые панели и эту кнопку.
Мой вопрос: как я могу получить ссылку на родительское окно моей кнопки БЕЗ ссылки на окно по идентификатору?Я буквально хочу ссылку на экземпляр Ext.Window, а не на экземпляр Ext.Panel, который содержит мою кнопку.
Примечание: я не хочу ссылаться на окно по id, потому что я создаю подкласс класса Ext.Windowи, следовательно, идентификатор окна не всегда будет одинаковым.Короче говоря, я создаю класс мастера, и когда я нажимаю кнопку «Отмена» мастера, я хочу скрыть окно мастера, содержащее кнопку.
Вот мой код:
var newWizardWindow = new WizardWindow({
id: 'newWizardWindow',
title: 'New',
items: [
...
],
buttons: [{
text: 'Cancel',
handler: function() {
// REFERENCE WizardWindow instance here.
}
},{
id: 'newWizardPreviousButton',
text: '« Previous',
disabled: true,
handler: newWizardNavigator.createDelegate(this, [-1])
},{
id: 'newWizardNextButton',
text: 'Next »',
handler: newWizardNavigator.createDelegate(this, [1])
}],
listeners: {
…
}
});
Вот некоторые идеи, которые я выдвинул, как скрыть окно:
- this.ownerCt.ownerCt (это кнопка).Не благоприятно, как в будущем обновлении ExtJS, число родителей между окном и кнопкой может измениться.
- Каким-то образом сохранить ссылку на экземпляр WizardWindow в классе WizardWindow.
- Найтиближайший класс WizardWindow [CSS] в стиле jQuery: $ (this) .closest ('. wizardWindow').Может быть this.findByParentType ('WizardWindow')?