码迷,mamicode.com
首页 > 其他好文 > 详细

easyUI重绘combobox中下拉箭头

时间:2015-03-02 19:12:10      阅读:2844      评论:0      收藏:0      [点我收藏+]

标签:easyui   combobox   

下午群里一个朋友问了我一个问题,她行要重绘combobox的下拉箭头。我当时第一想法就是让她把原生的图标替换不就好了嘛。可人家又说,要单选和多选的下拉箭头图标是不一样的。一段时间没用也不知道easyUI有没有给combobox开这个口子的,于是看了看文档,发现没有。那么看样子只能看源码咯,不过combo没有源码,只有变态的“_1,_2”命名的版本:

if(_4.hasDownArrow){
    _6.push({iconCls:"combo-arrow",handler:function(e){
    _a(e.data.target);
}});

hasDownArrow控制了是否显示下拉箭头,这里如果设置为false,那么就没有下拉箭头了,但是随之没有的也就是绑定在 下拉箭头上的事件。

好了,再接着看看,发现上面还有:

var _4=_3.options;
// 中间有省略
var _6=$.extend(true,[],_4.icons);

那么可以想到_4就是comboboxoptions,而_6则是_4中的icons属性。噢?还有icons属性,怎么官方文档上没有看到?难道是隐藏属性吗?呵呵
再看看最开始那段代码:

if(_4.hasDownArrow){
    _6.push({iconCls:"combo-arrow",handler:function(e){
    _a(e.data.target);
}});

应该能想到icon的格式了吧,对,就是{iconCls:"", handler:function(){}}。而icons呢则是一个数组,这样下面就可以写了:

    hasDownArrow:false,
    icons:[{
        iconCls:‘icon-room-16‘,
        handler:function(){
            $(this).parent().next().click();
        }
    }],
    editable:false

其实也就是完全不使用DownArrow的逻辑,而自己放图标自己处理点击事件,而这里的handler也实现的很简单,就是模拟点击了combobox的非图标部分,所以这里editable设置为false是必须的。

easyUI重绘combobox中下拉箭头

标签:easyui   combobox   

原文地址:http://blog.csdn.net/u012345283/article/details/44020785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!