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 相关文章推荐
经常用到的JavasScript事件的翻译
Apr 09 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
Apr 16 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
jQuery中[attribute!=value]选择器用法实例
Dec 31 Javascript
jQuery中attr()方法用法实例
Jan 05 Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 Javascript
js+html5实现canvas绘制网页时钟的方法
May 21 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
vue-router跳转页面的方法
Feb 09 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
vue cli 3.0 搭建项目的图文教程
May 17 Javascript
微信小程序后端无法保持session的原因及解决办法问题
Mar 20 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 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
javascript数组详解
2014/10/22 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
redux处理异步action解决方案
2020/03/22 Javascript
Python多线程编程(五):死锁的形成
2015/04/05 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python中的self用法详解
2019/08/06 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Django中ORM的基本使用教程
2020/12/22 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
化学教师教学反思
2014/01/17 职场文书
环保倡议书100字
2014/05/15 职场文书
装修活动策划方案
2014/08/27 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
表扬信范文
2015/05/04 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书