なぜこれが難しいのですか?私は CSS を使用できません。または、これで既に完了しています。コンテナ、画像、ラベルで構成される「ボタン」があり、コンテナのクリックイベントが正常に機能しました。ただし、ホバー時に背景色を変更するのと同じくらい簡単なことを行うと、ExtJが嫌いになり、これを行うより簡単な方法が必要になります。
これは私がこれまでに得たものです:
Ext.create('Ext.container.Container', {
layout: 'hbox',
style: { backgroundColor: '#ddd', margin: "5px 0px 5px 5px", padding: "3px", width: "150px", fontSize: "8pt" },
listeners: {
render: function (c) {
c.el.on('click', function () { alert('Downloading Report'); });
c.el.on('mouseover', function () {
//alert("mouseover");
Ext.apply(this, { style: { backgroundColor: '#aaa'} });
}
);
c.el.on('mouseout', function () {
//alert("mouseout");
Ext.apply(this, { style: { backgroundColor: '#ddd'} });
}
);
},
scope: this
},
items: [
{ xtype: 'image', src: "resources/images/icons/monoDownload32.png", style: { margin: "2px", maxWidth: "32px"} },
{
xtype: 'label',
text: 'MS Excel Report',
style: { margin: "2px", fontSize: "8pt" }
}
]
})
アラートは呼び出されますが、スタイルは適用されていません。これほど単純なことを行うためのよりクリーンな方法はありますか? または、同じ結果を達成できるこの状況で使用するより良いコントロールがあります。