[转]jQuery ListBox Plugin(ListBox插件)
本文转自:http://www.cnblogs.com/think8848/archive/2011/09/28/2193990.html
转载请注明作者(think8848)和出处(http://think8848.cnblogs.com)。未经作者同意,请勿擅自修改本文内容。
这两天项目中要用到类似于ListBox的功能了,本以为有很多jQuery插件,没有想到的是,居然没有搜到好用的,咋办呢,自已动手丰衣足食吧,于是花了一个晚上的时间做出来一个,上效果图:

该ListBox插件支持拖放,多选。
应用说明:
HTML:
<ul id="left"></ul> |
Javascript:
$('#left').listbox({ data: '/Data/Index?' + new Date().getTime(), width: 200, height: 300}); |
默认选项说明:
Options:
dnd: 是否支持拖放,默认false
dndscope: 支持拖放时相关的作用域,举例来说,即,A ListBox和B ListBox的dndscope相同,则这两个ListBox中的元素是可以相互拖放的
height: 地球人都知道,默认'auto'
width: 火星人也知道了,默认'auto'
data: 数据源,即可以是url也可以是对象数组,默认为[];
无论是远程还是本地数据均有两种格式:
1. {value: '', text: ''}
2. ['', ''],在这种情况下,请将value置于第一个元素
multiselect: 是否允许多选,默认false
ajaxsettings: 如果需要从远程获取数据,这里定义了$.ajax的默认选项
默认:
type: 'GET'
dataType: 'json'
success: funtion(data){}
Events:
2011.9.30 1.1版删除
itemselected: ListBox中的元素选中的被触发;
定义:function(data){},参数data为选中的元素数组
2011.9.30 1.1版新增
selectchange: ListBox中的元素选中项发生变化时被触发;
定义:function(data){},参数data为选中的元素数组
Methods:
addItem: 添加一个元素;
定义:function(data){},其中data类型为{value: '', text: ''}或['', '']
示例:
$('#btnAddItem').click(function () { $('#left').listbox().addItem({ value: 3, text: 'c' });}); |
addRange: 添加元素数组;
定义:function(data){},其中data类型为由{value: '', text: ''}或['', '']组成的数组
示例:
$('#btnAddRange').click(function () { $('#left').listbox().addRange([{ value: 4, text: 'd' }, ['5', 'e']]);}); |
clear: 清除所有元素
定义: function(){}
示例:
$('#btnClear').click(function () { $('#left').listbox().clear();}); |
getData: 获取与指定jQuery对象关联的数据
定义:function(a){},参数a为ListBox元素的a标签,ListBox元素的DOM结构为<li><a></a></li>
示例:
$('#btnGetData').click(function () { var a = $('#left a:first'); if (a.size() > 0) { var data = $('#left').listbox().getData(a); alert("{value: '" + data.value + "', text: '" + data.text + "'}"); }}); |
getDatas: 获取所有数据
定义: function(){}
示例:
$('#btnGetDatas').click(function () { alert($('#left').listbox().getDatas().length);}); |
getSelected: 获取所有选中的数据
定义:function(){}
示例:
$('#btnGetSelected').click(function () { alert($('#left').listbox().getSelected().length);}); |
2011.9.30 1.1版新增
reload: 重新加载ListBox中的数据
定义:function(data,ajaxsettings){},参数data,ajaxsettins定义同Options中同名属性data的定义
示例:
$('#btnReload').click(function () { $('#left').listbox().reload({ data: '/Data/Index', ajaxsettings: { data: { id: 'a' } } });}); |
removeItem: 删除指定value值的元素
定义:function(data){},参数data可以为单个值,也可以为{value:''}对象
示例:
$('#btnRemoveItem').click(function () { $('#left').listbox().removeItem({ value: 1 });}); |
removeRange: 删除指定value值数组的元素
定义:function(data){},参数data为单个值,或{value:''}对象的数组
示例:
$('#btnRemoveRange').click(function () { var datas = $('#left').listbox().getDatas(); $('#left').listbox().removeRange(datas);}); |
setSelection: 选中指定value值的元素
定义: function(value){},参数value为单个值
示例:
$('#btnSetSelection').click(function () { $('#left').listbox().setSelection(1);}); |
调用方法时,可以也可以使用$('#selector').listbox('methodName',arguments)方式,例:
$('#btnCallMethod').click(function () { var a = $('#left a:first'); if (a.size() > 0) { var data = $('#left').listbox('getData', a); alert("{value: '" + data.value + "', text: '" + data.text + "'}"); }}); |
OK,至此我的需求基本满足了,就先这样吧,欢迎在试用过程中提交bug或者改进建议,谢了
源代码与示例下载(VS2010 ASP.NET MVC 3)
[转]jQuery ListBox Plugin(ListBox插件)的更多相关文章
- JQuery多媒体插件jQuery Media Plugin使用详解
malsup jquery media plugin 该插件可以播放多种类型的多媒体文件包括:Flash, Quicktime, Windows Media Player, Real Player, ...
- 10 款基于 jQuery 的切换效果插件推荐
本文整理了 10 款非常好用的 jQuery 切换效果插件,包括平滑切换和重叠动画等,这些插件可以实现不同元素之间的动态切换. 1. InnerFade 这是一个基于 jQuery 的小插件,可以实现 ...
- 30个非常流行的提示信息插件(jQuery Tooltip Plugin)
在网站的设计中,提示信息是非常细微的功能,但是起着非常重要的作用.如果你的网站中提示信息做的比较好,会给浏览者留下非常深刻的印象,同时也会起到非常好的网站宣传效果,下面介绍了30个比较流行提示信息插件 ...
- (转)jQuery Validation Plugin客户端表单证验插件
jQuery Validation Plugin客户端表单验证插件 官方文档:http://jqueryvalidation.org/documentation/ 官方demo:http://jque ...
- 表单验证的validate.js插件---jQuery Validation Plugin
早上在公交车上看了一个关于慕课网的教程<表单验证的validate.js插件---jQuery Validation Plugin>,正好可以用到自己近期开发简易微博的注册页面和登录页面, ...
- 利用JQuery 来操作 ListBox和ListBox内移动
[导读]利用jquery 来操作 listbox和listbox内移动function listbox_move(listfrom,listto) { var size = $(" &quo ...
- jQuery多媒体播放器插件jQuery Media Plugin使用方法
jQuery Media Plugin是一款基于jQuery的网页媒体播放器插件,它支持大部分的网络多媒体播放器和多媒体格式,比如:Flash, Windows Media Player, Real ...
- 16款最佳的 jQuery Time Picker 时间选择插件
jQuery 插件可以为你做许多事情,你可以很容易地把这些插件集成到您的网站.网络上的 jQuery 日期选择器和日历插件很多,但找不到很满意的时间选择器插件. 在这里,我们收集了最好的一组 jQue ...
- jQuery自定义滚动条样式插件mCustomScrollbar
如果你构建一个很有特色和创意的网页,那么肯定希望定义网页中的滚动条样式,这方面的 jQuery 插件比较不错的,有两个:jScrollPane 和 mCustomScrollbar. 关于 jScro ...
随机推荐
- asp.net mvc部分视图的action中获取父级视图信息
RouteData.DataTokens["ParentActionViewContext"]中包含了父级视图的相关信息,如路由等 public ActionResult Chil ...
- C# 4种方法计算斐波那契数列 Fibonacci
F1: 迭代法 最慢,复杂度最高 F2: 直接法 F3: 矩阵法 参考<算法之道(The Way of Algorithm)>第38页-魔鬼序列:斐波那契序列 F4: 通项公式法 由于公式 ...
- Js 事件详解
1.事件流 1.1 事件流 描述的是在页面中接受事件的顺序 1.2 事件冒泡 由最具体的元素接收,然后逐级向上传播最不具体的元素的节点(文档) 1.3 事件捕获 最不具体的节点先接收事件,而最具体的节 ...
- 【OCP题库-12c】最新CUUG OCP 071考试题库(72题)
72.View the exhibit for the structure of the STUDENTand FACULTYtables. STUDENT Name Null? Type ----- ...
- Thread.sleep(1000)
public class Wait { public static void main(String[] args) { System.out.println(System.currentTimeMi ...
- WiFi安全那些事儿,整理推荐~
即使你安装了防火墙,不连接任何WIFI和热点,不在任何不受信任的网站下载东西,及时清理缓存和个人敏感信息,你相信吗?你的个人隐私仍然可能被泄露出去! 基础篇: 推荐1 谁出卖了你 << ...
- php性能优化三(PHP语言本身)
0.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册 ...
- re 模块 常规方法使用
前情提要: re模块主要用于正则,用的好了秒杀一切匹配的规则,这里主要是介绍基本用法 一:元字符 1:\w 匹配字符,包含中文,数字或下划线 l ='早乙女露依 123 是我的 321 心目中的 22 ...
- python 第一天学习(画个正方体)
import turtleturtle.goto(200,0)turtle.goto(200,200)turtle.goto(0,200)turtle.goto(0,0)turtle.penup()t ...
- 4、TensorFlow基础(二)常用API与变量作用域
1.图.操作和张量 TensorFlow 的计算表现为数据流图,所以 tf.Graph 类中包含一系列表示计算的操作对象(tf.Operation),以及在操作之间流动的数据 — 张量对象(tf.Te ...