由于后端开发需要一个下拉控件,能输入,能选择,于是自己写了一个

  1. ;(function($,window,document,undefined){
  2. function Select(el,opt){
  3. this.$el = el;
  4. this.default={
  5. title:'选择类别',
  6. showTitle:true,
  7. wth:'',// ''100%,half:50%,third:30%
  8. require:true,
  9. items:[{
  10. id:"01",
  11. contxt:'项目一'
  12. },{
  13. id:"02",
  14. contxt:'项目二'
  15. }]
  16. }
  17. this.settings = $.extend({},this.default,opt);
  18. }
  19. Select.prototype={
  20. init:function(){
  21. var that = this,
  22. $html=$('<div class="title"><span class="eis-require">*</span>\n'+
  23. that.settings.title+
  24. '</div>\n'+
  25. '<div class="es-input-wrapper">\n' +
  26. ' <div class="input-box">\n' +
  27. ' <input type="text" value="" placeholder="'+that.settings.title+'">\n'+
  28. '<i class="fa fa-angle-down"></i>\n' +
  29. '<ul class="eis-new-form-dropmenu"></ul>'+
  30. ' </div>\n' +
  31. ' </div>');
  32. that.$el.append($html);
  33. var $list=that.$el.find('.eis-new-form-dropmenu'),
  34. $require = that.$el.find('.eis-require'),
  35. $input = that.$el.find('input[type="text"]'),
  36. $title=that.$el.find('.title'),
  37. $inputWrapper=that.$el.find('.es-input-wrapper');
  38. //判断显示标题
  39. if(that.settings.showTitle===false){
  40. $title.remove()
  41. $inputWrapper.css({'margin-left':"0"})
  42. }else{
  43. $inputWrapper.css({'margin-left':"100"})
  44. }
  45. if(!that.$el.hasClass('es-form-group')){
  46. that.$el.addClass('es-form-group')
  47. }
  48. switch (that.settings.wth){
  49. case '':
  50. break
  51. case 'half':
  52. that.$el.addClass('half');
  53. break;
  54. case 'third':
  55. that.$el.addClass('third')
  56. }
  57. // 添加下拉列表
  58. var $listHtml = '';
  59. if(that.settings.items && that.settings.items.length>0){
  60. for(var i = 0;i<that.settings.items.length;i++){
  61. $listHtml+='<li class="eis-dropmenu-item">'+that.settings.items[i]['contxt']+'</li>'
  62. }
  63. $list.html($listHtml)
  64. }
  65. //判断显示必填
  66. if(that.settings.require){
  67. $require.text('*')
  68. }else(
  69. $require.text('')
  70. )
  71. //下拉展示收缩
  72. var $dropToggle = that.$el.find('.fa');
  73. $dropToggle.on('click',function(e){
  74. if(e){
  75. e.stopPropagation();
  76. }else{
  77. window.event.cancelBubble=true
  78. }
  79. if($(this).get(0).style['transform']==''){
  80. $(this).get(0).style['transform']='translate(0,-50%) rotate(180deg)';
  81. }else if( $(this).get(0).style['transform']==='translate(0px, -50%) rotate(180deg)'){
  82. $(this).get(0).style['transform']='translate(0,-50%) rotate(0deg)';
  83. }else{
  84. $(this).get(0).style['transform']='translate(0,-50%) rotate(180deg)'
  85. }
  86. $list.slideToggle()
  87. })
  88. var $listItem = $list.find('.eis-dropmenu-item');
  89. $listItem.each(function(){
  90. $(this).on('click',function(e){
  91. if(e){
  92. e.stopPropagation();
  93. }else{
  94. window.event.cancelBubble=true
  95. }
  96. $input.val('');
  97. $input.val($(this).text())
  98. $list.slideToggle()
  99. })
  100. })
  101. $(document).on('click',function(){
  102. $list.hide();
  103. })
  104. }
  105. }
  106. $.fn.extend({
  107. select:function(opt){
  108. return this.each(function(){
  109. new Select($(this),opt).init()
  110. })
  111. }
  112. })
  113. })(jQuery,window,document)

外部调用

  1. $(function(){
  2. $('#select').select({
  3. title:'联系人',//标题
  4. wth:'half',// ''100%,half:50%,third:30%
  5. require:true,//true,显示红*,false不显示
  6. showTitle:false,//是否显示标题
  7. //item数据
  8. items:[{
  9. id:"01",
  10. contxt:'项目一'
  11. },{
  12. id:"02",
  13. contxt:'项目二'
  14. }]
  15. })
  16. })

下拉控件jQuery插件的更多相关文章

  1. java 下拉控件 转自 http://www.cnblogs.com/lhb25/p/form-enhanced-with-javascript-three.html

    表单元素让人爱恨交加.作为网页最重要的组成部分,表单几乎无处不在,从简单的邮件订阅.登陆注册到复杂的需要多页填写的信息提交功能,表单都让开发者花费了大量的时间和精力去处理,以期实现好用又漂亮的表单功能 ...

  2. 一不小心写了个bootstrap风格下拉控件 JqueryUI + bootstrap

    受够了EasyUI的封闭,Bootstrap虽然华丽但是功能太渣,闲着无聊写个下拉控件玩玩吧,不喜勿喷哈... 第一步:先设计下我的下拉控件的样子 1.既然是bootstrap风格的,我想应该是这样的 ...

  3. DevExpress控件GridView挂下拉控件无法对上值

    下拉控件使用RepositoryItemLookUpEdit,加入如下事件进行处理. repositoryItemLookUpEdit1.CustomDisplayText += new DevExp ...

  4. scrollview嵌套下拉控件嵌套recyclerview(不动第三方原基础自定义)

    相信会碰到很多类似的需求,一个列表控件,然后控件上方的一个头部需要自定义,这样就不好有时候也不能加在列表控件的头部了,那必须得嵌套一层scrollview了,没毛病,那么一般的列表控件都是有上拉下拉的 ...

  5. 基于bootstrap的multiple-select下拉控件使用

    multiple-select是一款优秀的下拉菜单控件,能够支持单选和多选. 详细参考文档: JS组件系列——两种bootstrap multiselect组件大比拼 multiple-select ...

  6. 解决easyUI下拉控件无法触发onkeydown事件

    实现在combotree下拉控件中按Backspace键清除combotree选中的值 下面的代码无法获取到键盘事件 <input class="easyui-combotree&qu ...

  7. 使用谷歌提供的SwipeRefreshLayout下拉控件,并自定义实现下拉加载的功能

    package com.loaderman.swiperefreshdemo; import android.os.Bundle; import android.os.Handler; import ...

  8. SDI在自定义的工具栏上添加下拉控件

    0.首先到自己的工具条上新建一个控件,并命名新ID 1.拷贝FlatComboBox.h和FlatComboBox.cpp到工程目录下 2.建立新类 class CTrackerToolBar : p ...

  9. JQuery下拉控件select的操作汇总

    JQuery获取和设置Select选项方法汇总如下: 获取select 先看看下面代码:   $("#select_id").change(function(){//code... ...

随机推荐

  1. proto3 笔记1

    定义 Message 类型, 例子如下: syntax = "proto3"; message SearchRequest { string query = 1; int32 pa ...

  2. 【学习笔记】--- 老男孩学Python,day10, 初识函数 形参、实参

    函数:对功能的封装语法: def 函数名(形参): 函数体 函数名(实参) 函数名:命名规则和变量一样 函数的返回值: return, 函数执行完毕. 不会执行后面逻辑 1. 如果函数中不写retur ...

  3. python学习之老男孩python全栈第九期_day016知识点总结

    '''数据类型:intbool... 数据结构:dict (python独有的)listtuple (pytho独有的)setstr''' # reverse() 反转l = [1,2,3,4,5]l ...

  4. 浅谈脚本化css(三)之方块运动函数

    我们可以写一个让小方块运动的函数: div#demo { width: 100px; ; position: absolute; ; ; } var div = document.getElement ...

  5. Codeforces Global Round1 简要题解

    Codeforces Global Round 1 A 模拟即可 # include <bits/stdc++.h> using namespace std; typedef long l ...

  6. UVAlive6800The Mountain of Gold?(负环)

    题意 题目链接 问从\(0\)出发能否回到\(0\)且边权为负 Sol 先用某B姓算法找到负环,再判一下负环上的点能否到\(0\) #include<bits/stdc++.h> #def ...

  7. CSS属性之border

    css的border属性相信大家都不陌生了,就是给元素加个边框嘛,在不同的盒模型下,会给元素的宽高带来怎样的影响,相信大家也都很熟悉了,这里就不再赘述,只说说大家平时没有怎么留意的东西. 0.bord ...

  8. angular2.0---服务Service,使用服务进行数据处理

    1.创建服务 打开命令窗口,cd到项目目录下,输入  ng g service myData1  回车 创建服务,如下图所示: 这样就成功创建了服务,此时,可以在项目的app文件夹下生成了两个serv ...

  9. animation3 背景小动画笔记

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. struts2 开发模式

    在struts.xml中增加: <constant name="struts.devMode" value="true" />