Używam ExtJS do budowania okna zawierającego kilka paneli jako elementy. Jeden z tych paneli zawiera przycisk.Jak odwołać obiekt kontenerowy przodka z kontrolki ExtJS?
Chcę dołączyć do przycisku obsługę przycisku, tak że po kliknięciu przycisku mogę ukryć okno zawierające wyżej wymienione panele i ten przycisk.
Moje pytanie brzmi: jak mogę uzyskać odniesienie do okna nadrzędnego mojego przycisku BEZ odwoływania się do okna po identyfikatorze? Dosłownie chcę odwołać się do instancji Ext.Window, a nie do instancji Ext.Panel, która zawiera mój przycisk.
Uwaga: Nie chcę odwoływać się do okna przez id, ponieważ jestem podklasy klasy Ext.Window, a zatem identyfikator okna nie zawsze będzie taki sam. Krótko mówiąc, tworzę klasę Kreatora, a kiedy klikam przycisk Anuluj kreatora, chcę ukryć okno kreatora zawierające przycisk.
Oto mój kod:
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: {
…
}
});
Oto kilka pomysłów mam wymyślić w miarę jak ukryć okno:
- this.ownerCt.ownerCt (to jest przycisk). Niezbyt korzystne, ponieważ przy przyszłej aktualizacji do ExtJS liczba rodziców między oknem a przyciskiem może się zmienić.
- W pewien sposób przechowuj odwołanie do instancji WizardWindow w klasie WizardWindow.
- Znajdź najbliższą klasę WizardWindow [CSS] w modzie jQuery: $ (this) .closest ('. WizardWindow'). Może this.findByParentType ("WizardWindow")?
Chciałbym dać tę odpowiedź a +10 :) –