/** * 表情扩展 * @param {} config */ EmoteChooser = function(cfg){ this.width=340; this.height=112; this.autoScroll=true; Ext.apply(this,cfg); this.emoteView = new Ext.DataView({ store: new Ext.data.ArrayStore({ fields: ['name'], data : [//表情列表 ["001"],["004"],["005"],["006"],["007"],["008"],["009"],["010"],["011"], ["012"],["016"],["021"],["022"],["023"],["024"],["025"],["028"],["030"], ["002"],["003"],["013"],["026"],["014"],["015"], ["017"],["018"],["019"],["020"],["027"],["029"] ] }), tpl: new Ext.XTemplate( '<tpl for=".">', '<div class="emotes"><img src="resources/face/{name}.gif" title="{name}"></div>', '</tpl>' ), autoHeight:true, singleSelect: true, overClass:'x-view-over', itemSelector:'div.emotes', listeners : { 'click': this.selectEmoteFn } }); EmoteChooser.superclass.constructor.call(this, { border : false, items : this.emoteView }); this.emoteView.on('click',function(){ this.ownerCt.hide(); },this); }; Ext.extend(EmoteChooser, Ext.Panel, { selectEmoteFn : function(dc,num){} }); Ext.reg('emotechooser', EmoteChooser);
使用例子:
{text:'表情',scope:this,menu:new Ext.menu.Menu({ items : new EmoteChooser({ selectEmoteFn : this.selectEmoteFn.createDelegate(this) }) })}