感谢您查看此消息!
我在其中一个使用Ext.menu.ColorPicker的项目中遇到问题 我不知道为什么(这可能是非常简单的,我希望)但是选择器根本不会假设我需要的自定义颜色!
以下是一些示例代码,说明了我的问题:
Ext.onReady(function () {
var customColors = [
'fa7166', 'cf2424', 'a01a1a', '7e3838', 'ca7609', 'f88015', 'eda12a', 'd5b816',
'e281ca', 'bf53a4', '9d3283', '7a0f60', '542382', '7742a9', '8763ca', 'b586e2',
'7399f9', '4e79e6', '2951b9', '133897', '1a5173', '1a699c', '3694b7', '64b9d9',
'a8c67b', '83ad47', '2e8f0c', '176413', '0f4c30', '386651', '3ea987', '7bc3b5'
];
var picker = Ext.create('Ext.picker.Color');
picker.colors[0] = '556677';
picker.colors = customColors;
var btn = Ext.create('Ext.Button', {
menu: {
xtype: 'colormenu',
picker: picker,
value: 'FFFFFF',
handler: function (obj, rgb) {
Ext.Msg.alert('border-color: ' + rgb.toString());
} // handler
}, // menu
renderTo: Ext.getBody(),
text: 'Menu Button'
}).showMenu();
}); // onReady()
该行:
picker.colors[0] = '556677';
效果很好,你可以看到,我可以改变数组的元素0。
但是这一行:
picker.colors = customColors;
应该将整个新颜色数组分配给选取器,我不知道为什么,但它似乎不起作用。
我需要组件具有所有这些颜色,32种颜色不是选择器上默认的40种默认颜色!
我该怎么办?
提前谢谢......
答案 0 :(得分:1)
您使用了错误的小部件组合,而是将Ext.menu.ColorPicker
嵌入到另一个Ext.menu.Menu
中,而不是按原样使用Ext.menu.ColorPicker
,然后您将成为很高兴,像这样
var customColors = ['fa7166', 'cf2424', ...];
var pickerMenu = Ext.create('Ext.menu.ColorPicker');
pickerMenu.picker.colors = customColors;
var btn = Ext.create('Ext.Button', {
menu: pickerMenu, // menu
renderTo: Ext.getBody(),
text: 'Menu Button'
}).showMenu();
Here's您的代码的修改版本,适用于自定义颜色列表。希望它有助于解决您的问题。