jquery自定义下拉列表示例


Posted in Javascript onApril 25, 2014

自从上次做了JQ自定义分页插件和表格插件后,就没在自定义过插件了,这一个月都在用linq和ef,基本前端都没怎么去碰了,今天有个同事说有个项目需要在下拉框里面带有复选框,本来想网上找下插件的,一想,其实这功能也并不难,于是就自己做了一个,也趁机再次熟悉下JQ自定义插件吧,好了,先附上效果图先:

jquery自定义下拉列表示例

看上去没怎么难吧,其实就是强化JQ,免得太久没用,生疏了。好了。附上我的代码:

(function($){ var option={
     isEdit:false,  //是否可以编辑:默认是否
     Listheight:200,  //下拉框高度
     ListWidth:0,     //下拉框长度
     //数据源
     data:[
           {"value":1,"text":"选择1"},
           {"value":2,"text":"选择2"},
           {"value":3,"text":"选择3"},
           {"value":4,"text":"选择4"}
           ]
     }
           //开始创建下拉框
          function Start(obj)
          {
              if(!option.isEdit)
              {
              obj.attr({"readonly":"readonly"});
              }
            var      myList=$("<div></div>");
            var  ul=$("<ul></ul>");
           ul.css({"list-style":"none","margin":"0px","padding":"2px"});
           myList.css({"border":"1px solid #D9E5F3","position":"absolute","overflow-y":"scroll","background-color":"#fff","font-size":"12px"});
           if(option.Listheight<=0)
           {
               option.Listheight=200;
            }
           myList.height(option.Listheight);
           if(option.ListWidth<=0)
           {
             option.ListWidth=obj.width()
           }
              myList.width(option.ListWidth);
            //默认位置是在创建元素的下方
           myList.offset({"top":obj.offset().top+obj.outerHeight(),"left":obj.offset().left});
           var data=option.data;
           if(data.length>0)
           {
          for(i=0;i<data.length;i++)
          {
             var li=$("<li/>");
              var ListSon=$("<input type='checkbox' />");
             ListSon.change(function(){
                    if(this.checked)    
                    {
                        obj.val(obj.val()+$(this).val());
                    }
                    else
                    {
                        obj.val(obj.val().replace($(this).val(),""));
                    }
                     })
              myList.mouseover(function(){
                            myList.show();           
                        })
             myList.mouseout(function(){
                            myList.hide();           
                        })
             var span=$("<span></span>");
             span.text(data[i].text);
               ListSon.val(data[i].value+";");
              li.append(ListSon);
             li.append(span);
             ul.append(li);
          }
           }
             myList.append(ul);
               myList.appendTo("body");
             myList.hide();
            FoucsShow($(obj),myList);
          }
          // 当获取到焦点使出现该下拉框
          function FoucsShow(obj,myList)
          {
              obj.focus(function(){myList.show()})
          }
          $.fn.createList=function(newoption)
          {
              $.extend(option,newoption);
             Start($(this));
          }
          })(jQuery);

前台调用:

$("#d2").createList({
     //数据源
     data:[
           {"value":"C#","text":"C#"},
           {"value":".NET","text":".NET"},
           {"value":"Java","text":"Java"},
           {"value":"JSP","text":"JSP"},
           {"value":"C","text":"C"},
           {"value":"C++","text":"C++"},
           {"value":"javascript","text":"javascript"},
           {"value":"ajax","text":"ajax"},
           {"value":"json","text":"json"},
           {"value":"xml","text":"xml"},
           {"value":"sql server","text":"sql server"},
           {"value":"xml","text":"Mysql"},
           {"value":"oracle","text":"oracle"},
           {"value":"JQuery","text":"JQuery"},
           {"value":"Ext js","text":"Ext js"},
           {"value":"CSS3","text":"CSS3"},
           {"value":"HTML5","text":"HTML5"}
           ]    
            });
            $("#d3").createList();    
               })
Javascript 相关文章推荐
extjs DataReader、JsonReader、XmlReader的构造方法
Nov 07 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
Apr 16 Javascript
JavaScript中的substr()方法使用详解
Jun 06 Javascript
AngularJS入门教程之服务(Service)
Jul 27 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
Sep 01 Javascript
原生js实现可拖动的登录框效果
Jan 21 Javascript
JavaScript实现网页头部进度条刷新
Apr 16 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
webpack4 SplitChunks实现代码分隔详解
May 23 Javascript
Vue.js仿Select下拉框效果
Feb 18 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
Aug 06 Javascript
jquery常用特效方法使用示例
Apr 25 #Javascript
javascript实现存储hmtl字符串示例
Apr 25 #Javascript
javascript作用域和闭包使用详解
Apr 25 #Javascript
jQuery选择器简明总结(含用法实例,一目了然)
Apr 25 #Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 #Javascript
js动态移动滚动条至底部示例代码
Apr 24 #Javascript
javaScript如何处理从java后台返回的list
Apr 24 #Javascript
You might like
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
ie8本地图片上传预览示例代码
2014/01/12 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python 迭代器工具包【推荐】
2016/05/06 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
python如何从文件读取数据及解析
2019/09/19 Python
python实现画循环圆
2019/11/23 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
Python列表推导式实现代码实例
2020/09/09 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
三八妇女节活动主持词
2014/03/17 职场文书
十周年庆典策划方案
2014/06/03 职场文书
2014年部门工作总结
2014/11/12 职场文书
旷课检讨书范文
2015/01/27 职场文书
国富论读书笔记
2015/06/26 职场文书
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android