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实现web页面中指定区域打印
Oct 30 Javascript
jquery用offset()方法获得元素的xy坐标
Sep 06 Javascript
javascript版2048小游戏
Mar 18 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
Mar 02 Javascript
Angularjs 与 bower安装和使用详解
May 11 Javascript
详细AngularJs4的图片剪裁组件的实例
Jul 12 Javascript
重新认识vue之事件阻止冒泡的实现
Aug 02 Javascript
vuejs前后端数据交互之从后端请求数据的实例
Aug 11 Javascript
ES6使用export和import实现模块化的方法
Sep 10 Javascript
Antd中单个DatePicker限定时间输入范围操作
Oct 29 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访问查询mysql数据的三种方法
2006/10/09 PHP
设定php简写功能的方法
2019/11/28 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
对python 命令的-u参数详解
2018/12/03 Python
PyQt5实现登录页面
2020/05/30 Python
Python中bisect的用法及示例详解
2020/07/20 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
交通专业个人自荐信格式
2013/09/23 职场文书
销售经理工作职责
2014/02/03 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
2014年清明节寄语
2014/04/03 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
文艺演出主持词
2015/07/01 职场文书
高中同学会致辞
2015/08/01 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书