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 相关文章推荐
JavaScript代码复用模式实例分析
Dec 02 Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
用unescape反编码得出汉字示例
Apr 24 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
jquery实现加载进度条提示效果
Nov 23 Javascript
jQuery模仿单选按钮选中效果
Jun 24 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
Oct 13 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
微信小程序实现图片翻转效果的实例代码
Sep 20 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中改变图片的尺寸大小的代码
2011/07/17 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
JavaScript模板入门介绍
2012/09/26 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
bootstrap flask登录页面编写实例
2016/11/01 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
python中的colorlog库使用详解
2019/07/05 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
2014年上半年工作自我评价
2014/01/18 职场文书
公司经理聘任书
2014/03/29 职场文书
宪法宣传标语100条
2019/10/15 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
Go归并排序算法的实现方法
2022/04/06 Golang
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技