zoukankan      html  css  js  c++  java
  • JQ自定义下拉列表插件

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

    看上去没怎么难吧,其实就是强化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();    
                   })

    和大家分享一下,也喜欢有好的建议和方法能提供学习。

    如果你觉得本文对你有帮助,可以在右边随意 打赏 博主 ~(≧▽≦)/~

    ,,O(_)O~~~~

    作者:最爱晴天
    出处:http://www.cnblogs.com/qtqq/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 究法律责任的权利。
     
  • 相关阅读:
    数据仓库--事实表
    Oracle SQL函数pivot、unpivot转置函数实现行转列、列转行
    在Oracle中使用rank()over()排名的问题
    python 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。(用列表推导式)
    pyhton 打印菱形
    三元运算
    Python代码书写规范
    DDT驱动
    使用 JsonPath 完成接口自动化测试中参数关联和数据验证(Python语言)
    数据类型(字典)
  • 原文地址:https://www.cnblogs.com/qtqq/p/3680349.html
Copyright © 2011-2022 走看看