jQuery EasyUI 为Combo,Combobox添加清除值功能

来源:互联网 发布:新浪微博pv和uv数据 编辑:程序博客网 时间:2024/06/05 03:35
效果图:

 

图标


[javascript] view plaincopy
  1. (function($){  
  2.       
  3.     //初始化清除按钮  
  4.     function initClear(target){  
  5.         var jq = $(target);  
  6.         var opts = jq.data('combo').options;  
  7.         var combo = jq.data('combo').combo;  
  8.         var arrow = combo.find('span.combo-arrow');  
  9.           
  10.         var clear = arrow.siblings("span.combo-clear");  
  11.         if(clear.size()==0){  
  12.             //创建清除按钮。  
  13.             clear = $('<span class="combo-clear" style="height: 20px;"></span>');  
  14.               
  15.             //清除按钮添加悬停效果。  
  16.             clear.unbind("mouseenter.combo mouseleave.combo").bind("mouseenter.combo mouseleave.combo",  
  17.                 function(event){  
  18.                     var isEnter = event.type=="mouseenter";  
  19.                     clear[isEnter ? 'addClass' : 'removeClass']("combo-clear-hover");  
  20.                 }  
  21.             );  
  22.             //清除按钮添加点击事件,清除当前选中值及隐藏选择面板。  
  23.             clear.unbind("click.combo").bind("click.combo",function(){  
  24.                 jq.combo("setValue","").combo("setText","");  
  25.                 jq.combo('hidePanel');  
  26.             });  
  27.             arrow.before(clear);  
  28.         };  
  29.         var input = combo.find("input.combo-text");  
  30.         input.outerWidth(input.outerWidth()-clear.outerWidth());  
  31.           
  32.         opts.initClear = true;//已进行清除按钮初始化。  
  33.     }  
  34.       
  35.     //扩展easyui combo添加清除当前值。  
  36.     var oldResize = $.fn.combo.methods.resize;  
  37.     $.extend($.fn.combo.methods,{  
  38.         initClear:function(jq){  
  39.             return jq.each(function(){  
  40.                  initClear(this);  
  41.             });  
  42.         },  
  43.         resize:function(jq){  
  44.             //调用默认combo resize方法。  
  45.             var returnValue = oldResize.apply(this,arguments);  
  46.             var opts = jq.data("combo").options;  
  47.             if(opts.initClear){  
  48.                 jq.combo("initClear",jq);  
  49.             }  
  50.             return returnValue;  
  51.         }  
  52.     });  
  53. }(jQuery));  


[html] view plaincopy
  1. html代码  
  2. <select id="myselect" panelHeight="auto" style="width: 102px;" editable="true" name="itcast">  
  3.         <option value="0">成都</option>  
  4.         <option value="1">传智播客</option>  
  5.         <option value="2">姚欣</option>  
  6.         <option value="3">小星星</option>  
  7. </select>  

[javascript] view plaincopy
  1. js代码  
  2. $('#myselect').combobox({  
  3.     required : true,  
  4.     editable : false  
  5. }).combobox("initClear");  


[css] view plaincopy
  1. css样式  
  2. .combo-clear {  
  3.   background-color#E0ECFF;  
  4.   width18px;  
  5.   height20px;  
  6.   overflowhidden;  
  7.   display: inline-block;  
  8.   vertical-aligntop;  
  9.   cursorpointer;  
  10.   opacity: 0.6;  
  11.   filter: alpha(opacity=60);  
  12.   backgroundurl('images/combo_clear.png'no-repeat center center;  
  13. }  
  14. .combo-clear-hover {  
  15.   opacity: 1.0;  
  16.   filter: alpha(opacity=100);  
  17.   background-color#eaf2ff;  
  18. }  
0 0
原创粉丝点击