コントローラー付きの 3 つの独立したボタンがあります。いずれかのボタンをクリックすると、パネルが作成されて表示されます (アニメーション付き)。私のコントローラーの1つは次のようになります。
Ext.define('AM.controller.Prod_Select', {
extend: 'Ext.app.Controller',
init: function() {
this.control({
'#prod_select': {
click: this.prodSelect
}
});
},
prodSelect: function() {
var subPanel = Ext.create('Ext.panel.Panel', {
width: 200,
height: 160,
html: '<center><p class="sub_panel_text "> Link <br /> Link <br /> Link </p> </center>',
bodyStyle: 'background:#010a4d',
border:false,
floating: true,
shadow: false,
style: 'opacity: 0;',
x: 770,
y: 75,
cls: 'sub_panel'
});
subPanel.show();
subPanel.animate({
duration: 1000,
to: {
opacity: .6,
x: 800,
y: 75
}
});
console.log('Clicked Prod');
}
});
これは問題なく動作しますが、現在、1 つのボタンを x 回クリックすると、x 個のパネルが作成されます。ただし、このコントローラーに必要なのは、クリックから単一のパネルのみを作成し、3 つのうち既に表示されている可能性のある他のパネルを (フェードアウトで) 非表示にすることです。
これを達成する方法はありますか?読んでくれてありがとう!