今天工作需要写了一个Ext的下拉选择颜色的组件,扩展了combo,增加一个colors的属性,属性写的很死,不太严谨,先拿出初稿,欢迎批评,指正!
Ext.ux.ColorPickerCombo = Ext.extend(Ext.form.ComboBox, { /** * 添加的颜色列表 * **/ colors:[], hiddenName : 'id', typeAhead : true, triggerAction : 'all', lazyRender : true, editable : false, mode : 'local', valueField : 'id', displayField : 'name', initComponent: function(){ var colors = this.colors; var data = []; for (var i = 0; i < colors.length; i++) { var o = new Object(); o.id = colors[i]; o.name = '<a href="#" class="color-"'+colors[i]+' hidefocus="on"><em><span style="background:#'+colors[i]+';" unselectable="on">  </span></em></a>' data.push(o); } this.store = new Ext.data.JsonStore({ fields : ['id', 'name'], data : data }) Ext.ux.ColorPickerCombo.superclass.initComponent.call(this); } });