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 相关文章推荐
JavaScript Cookie显示用户上次访问的时间和次数
Dec 08 Javascript
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
javascript 中that的含义示例介绍
May 14 Javascript
关于js里的this关键字的理解
Aug 17 Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 Javascript
React Native实现简单的登录功能(推荐)
Sep 19 Javascript
jquery中用jsonp实现搜索框功能
Oct 18 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
layui输入框只允许输入中文且判断长度的例子
Sep 18 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 Javascript
详解JavaScript中的this指向问题
Feb 05 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中strtr字符串替换用法详解
2014/11/26 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
node和vue实现商城用户地址模块
2018/12/05 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Django卸载之后重新安装的方法
2017/03/15 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
Python集合操作方法详解
2020/02/09 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
反邪教警示教育方案
2014/05/13 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
通知书大全
2015/04/27 职场文书
告知书格式
2015/07/01 职场文书