为什么这么难?我不能使用CSS,或者我已经完成了.我有一个由容器,图像和标签组成的"按钮",我点击事件对容器工作正常.然而 - 做一些简单的事情就像在悬停时更改背景颜色一样,我现在讨厌ExtJs,有一个更简单的方法.
这是我到目前为止所得到的:
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" }
}
]
})
Run Code Online (Sandbox Code Playgroud)
调用警报但未应用样式.做一些如此简单的事情更简洁吗?或者在这种情况下可以使用更好的控件来获得相同的结果.
遗憾的是你无法使用CSS.如果可以的话,那overCls就是要走的路:http : //docs.sencha.com/ext-js/4-1/#!/api/Ext.AbstractComponent-cfg-overCls
除此之外,你的方法非常接近.将样式对象应用到el上将不会做任何事情,因为Ext不知道你这样做了.相反,你想打电话setStyle或applyStyles
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.dom.Element-method-applyStyles
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.dom.Element-method-setStyle