jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)


Posted in Javascript onApril 08, 2016

Selectator是一款实现多选和搜索过滤功能的jQuery下拉列表框插件。它支持搜索,并且能直接影响原始的选择框,而原始的选择框是用作数据容器。通过该下拉列表框插件可以多选项进行分组,设置选项的图标,对选项进行搜索过滤,以及进行多选选择。

jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载) 

效果展示       源码下载

使用方法

使用该下拉类别框插件需要在页面中引入fm.selectator.jquery.css、jQuery和fm.selectator.jquery.js文件。

<link rel="stylesheet" href="fm.selectator.jquery.css"/>
<script src="jquery-1.11.0.min.js"></script>
<script src="fm.selectator.jquery.js"></script>

HTML结构

一个选项带图标级带分组选项的下拉列表的HTML结构如下:

<label for="select">
Multi select with custom content:
</label>
<select id="select" name="select" multiple>
<optgroup label="Group one" class="group_one">
<option value="1" class="option_one" data-subtitle="Et" data-left="<img src='images/ingi.png'>" data-right="1">One</option>
<option value="2" class="option_two" data-subtitle="To" data-left="<img src='images/runa.png'>" data-right="2">Two</option>
</optgroup>
<optgroup label="Group two" class="group_two">
<option value="3" class="option_three" data-subtitle="Tre" data-left="<img src='images/jogvan.png'>" data-right="3">Three</option>
<option value="4" class="option_four" selected data-left="<img src='images/noimage.png'>" data-right="4">Four</option>
<option value="5" class="option_five" selected data-left="<img src='images/noimage.png'>" data-right="5">Five</option>
<option value="6" class="option_six">Six</option>
</optgroup>
<optgroup label="Group three" class="group_three">
<option value="7" class="option_seven">Seven</option>
</optgroup>
<option value="8" class="option_eight" data-subtitle="Otte">Eight</option>
<option value="9" class="option_nine">Nine</option>
<option value="10" class="option_ten" selected>Ten</option>
<option value="11" class="option_eleven" selected>Eleven</option>
<option value="12" class="option_twelve">Twelve</option>
<option value="13" class="option_thirteen">Thirteen</option>
<option value="14" class="option_fourteen">Fourteen</option>
</select>
<input value="activate selectator" id="activate_selectator4" type="button">

初始化插件

在页面DOM元素加载完毕之后,可以通过selectator()方法来初始化该下拉列表插件。

$('#selectBox').selectator();

你也可以直接使用标签来初始化它:

<select multiple class="selectator" data-selectator-keep-open="true">

配置参数

$('#selectBox').selectator({
prefix: 'selectator_', // CSS class prefix
height: 'auto', // auto or element
useDimmer: false, // dims the screen when option list is visible
u**arch: true, // if false, the search boxes are removed and 
// `showAllOptionsOnFocus` is forced to true
keepOpen: false, // if true, then the dropdown will not close when 
// selecting options, but stay open until losing focus
showAllOptionsOnFocus: false, // shows all options if input box is empty
selectFirstOptionOnSearch: true, // selects the topmost option on every search
searchCallback: function(value){}, // Callback function when enter is pressed and 
// no option is active in multi select box
labels: {
search: 'Search...' // Placeholder text in search box in single select box
}
});

其它可用的属性标签

通过使用data-left、data-right和data-subtitle标签你可以扩展下拉列表的显示信息。它们可以通过CSS来设置样式,CSS的前缀为:prefix_title、prefix_left、prefix_right和prefix_subtitle。这些数据都是纯HTML代码,所以你也可以使用图片代码。

<select id="selectBox">
<!-- Normal option tag -->
<option value="1">This is the title</option>
<!-- Extended option tag -->
<option value="2" data-left="This is the left section"
data-right="This is the right section"
data-subtitle="This is the section under the title">This is the title</option>
</select>

上的代码会显示为类似下面的结构:

jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载) 

CSS类

class 描述
prefix_element 这是一个新的下拉列表框。它带有相同的额外class类:single 和 multiple ,它们用于设置是单选还是多选。另外 options-visible 和 options-hidden 用于设置选项是否可见
prefix_chosen_items 被选择的选项的容器
prefix_chosen_item 当前被选择的选项的容器
prefix_chosen_item_title 当前被选择的选项的标题
prefix_chosen_item_left 当前被选择的选项的左侧的内容
prefix_chosen_item_right 当前被选择的选项的右侧的内容
prefix_chosen_item_subtitle 当前被选择的选项的子标题
prefix_chosen_item_remove 当前被选择的选项的移除按钮
prefix_input This is the input box for the selectator. This is used together with options-visible or options-hidden to show and style it differently if it is a multiple selection box or a single selection box.
prefix_textlength 用于计算多项选择框中input的尺寸
prefix_options 选项列表容器
prefix_group_header 分组标题
prefix_group 分组容器
prefix_option 结果选项。它使用class active 来表明当前激活的选项
prefix_option_title 结果选项的标题
prefix_option_left 结果选项左侧的内容
prefix_option_right 结果选项右侧的内容
prefix_option_subtitle 结果选项右侧的子标题
prefix_dimmer dimmer

方法

方法 描述
refresh 该方法用于刷新插件
destroy 该方法用于销毁插件

jquery.selectator-custom下拉列表插件的github地址为:

 https://github.com/Lepshey/jquery.selectator-custom

Javascript 相关文章推荐
ExtJS 2.2.1的grid控件在ie6中的显示问题
May 04 Javascript
将Datatable转化成json发送前台实现思路
Sep 06 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
table对象中的insertRow与deleteRow使用示例
Jan 26 Javascript
纯css+js写的一个简单的tab标签页带样式
Jan 28 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
Jul 17 Javascript
vue-scroller记录滚动位置的示例代码
Jan 17 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
Mar 05 Javascript
小程序新版订阅消息模板消息
Dec 31 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
JavaScript代码实现左右上下自动晃动自动移动
Apr 08 #Javascript
JS表单验证的代码(常用)
Apr 08 #Javascript
JavaScript事件代理和委托详解
Apr 08 #Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 #Javascript
关于cookie的初识和运用(js和jq)
Apr 07 #Javascript
纯js实现瀑布流布局及ajax动态新增数据
Apr 07 #Javascript
原生JavaScript实现Ajax的方法
Apr 07 #Javascript
You might like
PHP编程与应用
2006/10/09 PHP
phpmyadmin的#1251问题
2006/11/25 PHP
php时间不正确的解决方法
2008/04/09 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
js下拉菜单语言选项简单实现
2013/09/23 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
python支持断点续传的多线程下载示例
2014/01/16 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
大专生求职信
2014/06/29 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python