私はExtJSを使用していくつかのパネルをアイテムとして含むウィンドウを構築しています。これらのパネルの1つにボタンがあります。ExtJSコントロールから祖先コンテナオブジェクトを参照する方法は?
ボタンをクリックすると、上記のパネルとこのボタンを含むウィンドウを非表示にできるように、ボタンにハンドラをアタッチしたいと考えています。
私の質問は:どのように私のIDのウィンドウを参照せずに、私のボタンの親ウィンドウへの参照を取得できますか?私は文字通り、Ext.Windowインスタンスへの参照を望み、私のボタンを含むExt.Panelインスタンスは必要としません。
注:Ext.Windowクラスをサブクラス化しているため、ウィンドウのIDが常に同じではないため、IDでウィンドウを参照したくありません。要するに、ウィザードクラスを作成しています。ウィザードのキャンセルボタンをクリックすると、ボタンを含むウィザードウィンドウが非表示になります。ここで
は私のコードです:
- this.ownerCt.ownerCt(これはボタンであること:ここで
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: { … } });
は、私は限り、ウィンドウを非表示にする方法などが出ているいくつかのアイデアがあります)。 ExtJSの将来のアップデートでは好都合ではなく、ウィンドウとボタンの間の親の数が変わるかもしれません。
- WizardWindowインスタンスへの参照をWizardWindowクラスに格納しておきます。
- jQueryファッションで最も近いWizardWindow [CSS]クラスを見つける:$(this).closest( '。wizardWindow')。多分this.findByParentType( 'WizardWindow')?
私はこの回答に+10を与えることができたらいいですか? –