[jQueryUI] - Chosen:select下拉选择框美化插件及问题

Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的、很长的select选择框变的更好看、更方便。不仅如此,它更扩展了select,增加了自动筛选的功能。它可对列表进行分组,同时也可禁用某些选择项。

先来看下插件的效果:

 

跟这个比起来,原来的select样式是不是弱爆了!

马上来武装我们的select吧:

1、先把js和css文件引用到网页里面去:

?
1
2
3
< link  href = "js/jqueryUI/chosen/chosen.css"  type = "text/css"  rel = "stylesheet"  />
< script  type = "text/javascript"  src = "js/jquery.1.4.4.min.js" ></ script >
< script  type = "text/javascript"  src = "js/jqueryUI/chosen/chosen.jquery.js" ></ script >

2、创建一个select元素,如下: 

?
1
2
3
4
5
6
7
< select  name = "dept"  style = "width: 150px;"  id = "dept"  class = "dept_select"
     < option  value = "部门1" >部门1</ option >
     < option  value = "部门2" >部门2</ option >
     < option  value = "部门3" >部门3</ option >
     < option  value = "部门4" >部门4</ option >
     < option  value = "部门5" >部门5</ option >
</ select >

3、然后在js中调用Chosen定义的方法:

?
1
2
3
$( function (){
     $( '.dept_select' ).chosen();
});

4、搞定收工,屌丝立马变成高富帅有木有~ 

 



 

 

  

 

 

chosen插件的一些设置项:

1、默认文字选项

你可以在select元素上添加data-placeholder属性定义默认文字,也就是在没有选择选项的情况下,显示的文字。 

?
1
2
3
4
5
6
7
8
< select  data-placeholder = "选择部门"  style = "width:150px;"  class = "dept_select" >
     < option  value = "-1" ></ option >
     < option  value = "部门1" >部门1</ option >
     < option  value = "部门2" >部门2</ option >
     < option  value = "部门3" >部门3</ option >
     < option  value = "部门4" >部门4</ option >
     < option  value = "部门5" >部门5</ option >
</ select >

这里还要注意一点,要想显示出默认文字,select下的第一个选择项必须为空的option。

 

2、对其方式
选项文字默认是左对齐的,可以在class属性中加入“chzn-rtl”来设置右对齐: 

?
1
< select  data-placeholder = "选择部门"  class = "dept_select chzn-rtl"  style = "width:150px;" >

 

3、JS参数设置

在调用chosen()方法时,我们可以设置一些参数: 

选项 描述
no_results_text 无搜索结果显示的文本
allow_single_deselect 是否允许取消选择
max_selected_options 当select为多选时,最多选择个数

 

?
1
2
3
4
5
$( ".some_select" ).chosen({
     /*max_selected_options: 2,*/
     no_results_text: "没有找到" ,
     allow_single_deselect: true
});

 

4、事件

  a) change事件:

?
1
2
3
$( ".dept-select" ).chosen().change( function (){
     //do something...
});

  b) 当我们需要动态更新select下的选择项时,该怎么办呢?只要在更新选择项后触发Chosen中的liszt:updated事件就可以了:   

?
1
2
//...$(".dept-select").html('...<option>部门6</option>...');
$( ".dept-select" ).trigger( "liszt:updated" );

 

其他问题:

1、如果不想要搜索框的话,很简单,用css把它隐藏掉就OK了:

?
1
2
3
.chzn-container-single .chzn-search {
     display : none ;
}

2、做为天朝的程序猿,不得不考虑ie6和ie7下的情况。好吧,用ie6打开一看,select还是一副屌丝样!  

  翻看chosen.jquery.js发现在chosen方法中有如下一段,ie6和ie7直接返回select对象本身: 

?
1
2
3
if  ($.browser.msie && ($.browser.version === "6.0"  || ($.browser.version === "7.0"  && document.documentMode === 7))) {
     return  this ;
}

  把这段js注释掉,重新打开ie6和7,不再屌丝了有木有!虽然箭头图片和搜索图片不透明不和谐(用js处理下就和谐了)。。。

  终于能高高兴兴地在ie6使用了,尼玛过了会又发现问题了,还是坑爹的ie6和7!如果2个select在一起又不和谐了,请看:

 

  点开选择部门,尼玛这是闹哪样!见图: 

 

  好吧,这应该是z-index的问题,把css修改下,结果各种div各种z-index改到吐血还是这副死样子。

  最后没办法了,想了个笨办法,动态改变所有chzn-container的z-index,在点击select的时候让当前container的z-index最高,让其他select的chzn-container的z-index变低。在chosen.jquery.js中找到此方法:

?
1
2
3
4
5
6
Chosen.prototype.activate_field = function () {
     this .container.addClass( "chzn-container-active" );
     this .active_field = true ;      
     this .search_field.val( this .search_field.val());
     return  this .search_field.focus();
};

  将此方法改为:

?
1
2
3
4
5
6
7
8
9
Chosen.prototype.activate_field = function () {
     this .container.addClass( "chzn-container-active" );
     this .active_field = true ;      
     this .search_field.val( this .search_field.val());
     var  zindex = 1010;
     this .container.css( 'z-index' , '1010' )
     $( '.chzn-container' ).not( this .container).css( 'z-index' ,--zindex);
     return  this .search_field.focus();
};

  当然,你也可以在生成.chzn-container的时候按顺序赋予不同的z-index,这样就可以不用每次点击select都要重新设一遍了。

  至此,ie6和ie7下使用Chosen基本没什么问题了。。。  

  

 

  原创文章,转载请注明。本文链接地址:[jqueryUI] - Chosen:select下拉选择框美化插件及问题

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
jquery-ui-timepicker-addon.css是基于jQuery UI的日期时间选择插件datetimepicker的样式表文件,用于定义和控制datetimepicker组件的外观和样式。 datetimepicker插件是一个基于jQuery UI的日期时间选择插件,它可以在输入中集成日期和时间选择器,具有用户友好的界面和强大的可定制性。和其他jQuery UI组件一样,datetimepicker插件也需要相应的CSS文件来定义和控制其外观和样式。 jquery-ui-timepicker-addon.css文件是datetimepicker插件的样式表文件,它包含了datetimepicker的默认样式和主题,也可以用于自定义修改样式表文件以达到特定的视觉效果。 使用jquery-ui-timepicker-addon.css文件的方法和使用jquery-ui.css文件的方法类似,具体使用方法如下: 1. 下载datetimepicker插件jQuery UI架,从官网(https://jqueryui.com/)或其他来源下载datetimepicker插件jQuery UI的压缩文件。 2. 引入jquery-ui-timepicker-addon.css文件,将jquery-ui-timepicker-addon.css文件复制到项目中,并在HTML页面中使用<link>标签引入该文件。 ``` <link rel="stylesheet" href="path/to/jquery-ui-timepicker-addon.css"> ``` 3. 引入jQuery和jQuery UI的JS文件,使用<script>标签引入jQuery和jQuery UI的JS文件。 ``` <script src="path/to/jquery.js"></script> <script src="path/to/jquery-ui.js"></script> ``` 4. 引入datetimepicker插件的JS文件,使用<script>标签引入datetimepicker插件的JS文件。 ``` <script src="path/to/jquery-ui-timepicker-addon.js"></script> ``` 引入这些文件后,就可以在输入中集成日期时间选择器,并使用jquery-ui-timepicker-addon.css文件来控制其外观和样式了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值