(旧状态,实际状态见下面的编辑。)
我想将菜单按钮的颜色设置为colorPicker子菜单中的所选颜色,以便用户始终可以看到选择。这就是我所拥有的:
onColorPicker1Select: function(colorpicker, color, e0pts) {
Ext.fly(colorpicker).parent.style.backgroundColor=color;
}
此时,Chrome告诉我它“无法设置未定义的backgroundColor”,因此该元素似乎被正确选择,只是它没有“样式”属性。
编辑:我有点进一步。我在Architect中的按钮上设置了ui =“plain”和style =“background-color:#fc0”,并且在Chrome中正确显示了黄色。但是以下代码无法更改颜色:onColorPicker1Select: function(colorpicker, color, e0pts) {
Ext.fly(colorpicker).parent.style="background-color:"+color;
}
没有错误,没有,niente,nada。但元素没有正确着色。
{
xtype: 'button',
itemId: 'color1',
style: 'background-color:#fc0;',
text: '1. Farbe',
menu: {
xtype: 'colormenu',
listeners: {
select: {
fn: me.onColorPicker1Select,
scope: me
}
}
}
}
如何更改按钮的样式?
EDIT2:我应该提到我正准备使用多个colorPickers的函数 - 这就是我选择相对路径(colorpicker.parent)而不是绝对路径(Ext.findById)的原因。
答案 0 :(得分:3)
您的代码不正确,因为:
Ext.fly(colorpicker).parent
不是属性,而是功能,请参阅http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.dom.Element.Fly colorpicker
元素您需要获取按钮的元素并为其设置背景颜色。这段代码应该有效:
onColorPicker1Select: function(colorpicker, color, e0pts) {
var button = colorpicker.up('button');
button.getEl().setStyle('background-color', '#' + color);
}