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 相关文章推荐
document 和 document.all 分别什么时候用
Jun 22 Javascript
菜鸟javascript基础资料整理3 正则
Dec 06 Javascript
c#和Javascript操作同一json对象的实现代码
Jan 17 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
May 04 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
Bootstrap框架实现广告轮播效果
Nov 28 Javascript
JS作用域链详解
Jun 26 Javascript
vue-router配合ElementUI实现导航的实例
Feb 11 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
Apr 22 Javascript
json字符串传到前台input的方法
Aug 06 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
Sep 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实现数组array转换成xml的方法
2016/07/19 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
python中常用的九种预处理方法分享
2016/09/11 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
养生餐厅创业计划书范文
2014/03/26 职场文书
委托书的写法
2014/08/30 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android