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 基础篇4 window对象,DOM
Mar 14 Javascript
密码框显示提示文字jquery示例
Aug 29 Javascript
使用GruntJS构建Web程序之构建篇
Jun 04 Javascript
input输入框鼠标焦点提示信息
Mar 17 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 Javascript
jquery实现图片预加载
Dec 25 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
从零开始做一个pagination分页组件
Mar 15 Javascript
js实现复制功能(多种方法集合)
Jan 06 Javascript
浅谈webpack-dev-server的配置和使用
May 17 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
Sep 27 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和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Django实现快速分页的方法实例
2017/10/22 Python
python如何实现内容写在图片上
2018/03/23 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
2014年迎新年活动方案
2014/02/19 职场文书
简历里的自我评价范文
2014/02/24 职场文书
初中英语课后反思
2014/04/25 职场文书
保护环境建议书400字
2014/05/13 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书