ExtJs之带图片的下拉列表框插件


Posted in Javascript onMarch 04, 2010

在ExtJs的官方网站上有一个带图片的下拉列表,其中扩展了ExtJs的Combo,名称叫做IconCombox,官方地址为:
     http://www.extjs.com/learn/Tutorial:Extending_Ext_Class_Chinese
     但是这个IconComboBox有个缺点,就是显示的图片不能按比例变化。如果图片太大,就会出现覆盖了Combobox中的字,或者出现Icon显示不全种种问题,后来读了IconComboBox的源代码,修改了其中的问题:
     在Ext.ux.IconCombo.js这个文件中:

/** 
* Ext.ux.IconCombo Extension Class 
* 
* @author Jozef Sakalos 
* @version 1.0 
* 
* @class Ext.ux.IconCombo 
* @extends Ext.form.ComboBox 
* @constructor 
* @param {Object} config Configuration options 
*/ 
Ext.ux.IconCombo = function(config) { 
// call parent constructor 
Ext.ux.IconCombo.superclass.constructor.call(this, config); 
this.tpl = config.tpl || 
'<div class="x-combo-list-item x-icon-combo-item {' 
+ this.iconClsField 
+ '}">{' 
+ this.displayField 
+ '}</div>' this.on({ 
render:{scope:this, fn:function() { 
var wrap = this.el.up('div.x-form-field-wrap'); 
this.wrap.applyStyles({position:'relative'}); 
this.el.addClass('x-icon-combo-input'); 
this.flag = Ext.DomHelper.append(wrap, { 
tag: 'div', style:'position:absolute' 
}); 
}} 
}); 
} // end of Ext.ux.IconCombo constructor 
// extend 
Ext.extend(Ext.ux.IconCombo, Ext.form.ComboBox, { 
setIconCls: function() { 
var rec = this.store.query(this.valueField, this.getValue()).itemAt(0); 
if(rec) { 
this.flag.className = 'x-icon-combo-icon ' + rec.get(this.iconClsField); 
} 
}, 
setValue: function(value) { 
Ext.ux.IconCombo.superclass.setValue.call(this, value); 
this.setIconCls(); 
} 
}); // end of extend 
// end of file

这个文件扩展了Ext.form.ComboBox,其中主要包含了两句代码:
第17到23行,这是设置了ComboBox的显示下拉内容,将原来的显示文字修改成了显示图片加文字,这个没有什么问题,但是如果图片太大,就需要修改CSS了。
第25到34行,这里设置了ComboBox中显示的内容方式,ExtJs使用了一个很好的方式,Ext.DomHelper.append,这个是ExtJs的一个Dom API,主要对Html的Dom进行操作,这个代码的意思就是使用Dom在wrap这个单元中添加一个新的标记,这个标记的tag是div,并且使用了position:absolute这个样式。这就是问题出现的原因。对于现在的浏览器来说,对于div的背景图片是没有办法修改的。于是我将其修改为img,通过这个来修改图片的大小,这样就可以了。具体的效果如下:
ExtJs之带图片的下拉列表框插件    
完整代码如下 http://xiazai.3water.com/201003/yuanma/iconcombo.rar

Javascript 相关文章推荐
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
jquery实现图片上传之前预览的方法
Jul 11 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
JS中递归函数
Jun 17 Javascript
node.js学习之base64编码解码
Oct 21 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
vue-cli配置文件——config篇
Jan 04 Javascript
深入理解Node module模块
Mar 26 Javascript
vue中的模态对话框组件实现过程
May 01 Javascript
layUI实现前端分页和后端分页
Jul 27 Javascript
微信小程序聊天功能的示例代码
Jan 13 Javascript
JavaScript replace(rgExp,fn)正则替换的用法
Mar 04 #Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
Mar 04 #Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
Mar 04 #Javascript
JavaScript类和继承 constructor属性
Mar 04 #Javascript
爆炸式的JS圆形浮动菜单特效代码
Mar 03 #Javascript
js 编写规范
Mar 03 #Javascript
jquery validation插件表单验证的一个例子
Mar 03 #Javascript
You might like
php中文字符截取防乱码
2008/03/28 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python读取文件名并改名字的实例
2019/01/07 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
经典大学生求职信范文
2014/01/06 职场文书
经销商会议欢迎词
2014/01/11 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
本科生就业推荐信
2014/05/19 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS