selectpick美化下拉框插件

所属分类:输入-选择框

 97866  390  查看评论 (3)
分享到微信朋友圈
X
selectpick美化下拉框插件 ie兼容8

修改者 iulog.com  

修改日期 2016-01-28

修改内容:

 1.settings增加container容器的配置项 默认加载到body内

 2.去除JS样式配置 改到css里控制

 3.设置默认显示在div上的值(即selectText配置)为当前select的选中值

 4.点击下拉选项后 同时设置原有下拉框select的值

 5.提供重新激活被disabled的下拉框的方法


selectpick是一款jquery开发的美化下拉框插件,具有响应快,美观,灵活,兼容性好的优点。代码配置很简单。且也支持对象级联操作。


配置详情:

var settings = {		
	container:"body",//模拟select生成的DIV存放的父容器		
        height: 30, // 下拉框的高度
        width: 150, // 下拉框的宽度
        disabled: false, // 是否禁用,默认false不禁用
        onSelect: "" // 点击后选中回调函数
}

重新激活被disabled的下拉框

function enAble(){
    $("#selectpick_test_2").parent().remove();
    $("#test_2").selectpick({container:'.test_2',disabled:false});
}

使用:

<script type="text/javascript">
  $(function(){
    $(".test").selectpick({ // 这里面是settings里面的配置项});
  });
</script>

<select class="test">
  <option>请选择<option>
  <option>选项1<option>
</select>

==============以下内容由 yulu  提供===========

//重置

$("#reset").bind("click", function(event) {
    $(".selectpick_div_" + elem_id + " span").first().text($(obj).children("option").first().text());
});

==========以下方法由___King。提供==================

点击下拉选项时最好提供键盘点击响应事件,点击上下方向键可进行选择。一下是我提供的键盘响应事件代码,可能有不足,但是可以借鉴一下。

/*响应键盘上、下方向、回车事件*/
               document.onkeydown= function(event) {
                   var e = event || window.event || arguments.callee.caller.arguments[0];
                               
                   if (e && e.keyCode == 38) {
                       if ($(".selectpick_ul_selectOption").find($("li"))[0].className==$(".selectpick_ul_selectOption").find($(".selectpick_options_selected"))[0].className) {
                           return;
                       }
                       $(".selectpick_ul_selectOption").find($(".selectpick_options_selected")).css({
                           "background-color": "",
                           "color": "#000"
                       }).removeClass("selectpick_options_selected").prev().css({
                           "background-color": settings.optionColor,
                           "color": "#fff"
                       }).addClass("selectpick_options_selected");
                   }
                   if (e && e.keyCode == 40) {
                       var length = $(".selectpick_ul_selectOption").find($("li")).length;
                       if ($(".selectpick_ul_selectOption").find($("li"))[length-1].className==$(".selectpick_ul_selectOption").find($(".selectpick_options_selected"))[0].className) {
                           return;
                       }
                       $(".selectpick_ul_selectOption").find($(".selectpick_options_selected")).css({
                           "background-color": "",
                           "color": "#000"
                       }).removeClass("selectpick_options_selected").next().css({
                           "background-color": settings.optionColor,
                           "color": "#fff"
                       }).addClass("selectpick_options_selected");                   }
                   if (e && e.keyCode == 13) { //enter 键 
                       var value=$(".selectpick_ul_selectOption").find($(".selectpick_options_selected")).children("label").first().text();
                       var text = $(".selectpick_ul_selectOption").find($(".selectpick_options_selected")).children("label").first().next().text();
                       if (value==""&&text=="") {
                           return;
                       }
                       $(".selectpick_div_" + elem_id + " span").first().text($(".selectpick_ul_selectOption").find($(".selectpick_options_selected")).children("label").first().next().text());
                       $(".selectpick_options_" + elem_id).empty().hide();
                       // 回调函数
                       if (settings.onSelect != undefined && settings.onSelect != "" && typeof settings.onSelect == "function") {
                           settings.onSelect(value,text);
                       }
                        
                   }
                   }
相关插件-选择框

jQuery移动端自定义select插件Ansel

Ansel自定义手机浏览器重置下拉选择带搜索
  选择框
 43616  330

纯js省市县三级联动

js省市县三级联动
  选择框
 51766  378

div模拟下拉省市级联三级联动附带地区数据(原创)

带地区代码,兼容到ie8;浏览器样式统一,下拉图标可自行更换,根据隐藏input value值获取地区代码
  选择框
 29998  327

jQuery自定义selects输入框

jQuery Select下拉单选、多选美化,带输入查找功能
  选择框
 30724  349

讨论这个项目(3)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    八楼有鬼 0
    2020/12/16 14:25:52
    😀 突然翻到这个,我都不记得我改过这个插件了 回复
    a359444423 1
    2017/1/5 17:01:38
    首先承认作者自己写一个优化select 插件很牛B。看了作者写的js就知道作者有很深的功底。但是在真正使用的过程中发现有很多小BUG如果动态生成select 下拉框时默认选中样式不会变动,多个下拉框级联,第一个下拉框选中多个,第二个下拉框显示多个。也就说select s只能初始化一次ducment.read 时就要把多个下拉框全初始化。但是有个问题这个时候下拉框还,没有动态生成只是一个空壳。动态生成时默认选中无效 回复
    八楼有鬼 0
    2016/1/28 15:01:02

    作者你好,我对插件进行了修改,不知道是不是可以发布到网上来,带上原作者信息

    修改内容:

    1. settings增加container容器的配置项 默认加载到body内

    2. 去除JS样式配置 改到css里控制

    3. 设置默认显示在div上的值(即selectText配置)为当前select的选中值

    4. 点击下拉选项后 同时设置原有下拉框select的值

    5. 提供重新激活被disabled的下拉框的方法


        西瓜0
        2016/1/28 15:01:45

        请发吧。

        三龙先生0
        2016/4/2 15:04:11
        请问下大侠,选择框怎么才能显示成行内元素啊?就是显示成左边是文字右边是选择框...
    回复
    小学生 0
    2015/10/21 10:10:13

    免费的 非常感谢

    回复
    每个片段都值得深刻怀念ヾ 0
    2015/8/16 8:08:33

    希望楼主可以解决下窗口缩放的问题,如果缩放了位置就不正确,我写到resize函数里面,框里面没有内容

    回复
    摇摇欲坠 0
    2015/3/31 15:37:06
    不支持ie8 现在用的就是这个 正想着找个替换的 回复
    yulu 0
    2015/2/12 14:39:17
    表单进行重置的时候 页面看不到变化 回复
    每个片段都值得深刻怀念ヾ 0
    2015/1/14 10:39:19
    怎么支持对象级联操作呢 回复
    LS.getName 0
    2014/12/4 1:55:10
    下拉框的字太多会有问题希望可以处理一下。 回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复