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 相关文章推荐
如果文字过长,则将过长的部分变成省略号显示
Jun 26 Javascript
用javascript实现页面打印的三种方法
Mar 05 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
ie7+背景透明文字不透明超级简单的实现方法
Jan 17 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
jQuery动态星级评分效果实现方法
Aug 06 Javascript
js实现tab切换效果实例
Sep 16 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
vue-cli中使用高德地图的方法示例
Mar 28 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
原生javascript如何实现共享onload事件
Jul 03 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
php 代码优化之经典示例
2011/03/24 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
php 阴历-农历-转换类代码
2012/01/16 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
Prototype Date对象 学习
2009/07/12 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
js控制input输入字符解析
2013/12/27 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
[19:15]DK战队纪录片
2014/09/02 DOTA
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
电子商务助理求职自荐信
2014/04/10 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
2014财务年终工作总结
2014/12/08 职场文书
库房管理员岗位职责
2015/02/12 职场文书
交心谈心活动总结
2015/05/11 职场文书
给领导敬酒词
2015/08/12 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang