本文转自: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插件)的更多相关文章

  1. JQuery多媒体插件jQuery Media Plugin使用详解

    malsup jquery media plugin 该插件可以播放多种类型的多媒体文件包括:Flash, Quicktime, Windows Media Player, Real Player, ...

  2. 10 款基于 jQuery 的切换效果插件推荐

    本文整理了 10 款非常好用的 jQuery 切换效果插件,包括平滑切换和重叠动画等,这些插件可以实现不同元素之间的动态切换. 1. InnerFade 这是一个基于 jQuery 的小插件,可以实现 ...

  3. 30个非常流行的提示信息插件(jQuery Tooltip Plugin)

    在网站的设计中,提示信息是非常细微的功能,但是起着非常重要的作用.如果你的网站中提示信息做的比较好,会给浏览者留下非常深刻的印象,同时也会起到非常好的网站宣传效果,下面介绍了30个比较流行提示信息插件 ...

  4. (转)jQuery Validation Plugin客户端表单证验插件

    jQuery Validation Plugin客户端表单验证插件 官方文档:http://jqueryvalidation.org/documentation/ 官方demo:http://jque ...

  5. 表单验证的validate.js插件---jQuery Validation Plugin

    早上在公交车上看了一个关于慕课网的教程<表单验证的validate.js插件---jQuery Validation Plugin>,正好可以用到自己近期开发简易微博的注册页面和登录页面, ...

  6. 利用JQuery 来操作 ListBox和ListBox内移动

    [导读]利用jquery 来操作 listbox和listbox内移动function listbox_move(listfrom,listto) { var size = $(" &quo ...

  7. jQuery多媒体播放器插件jQuery Media Plugin使用方法

    jQuery Media Plugin是一款基于jQuery的网页媒体播放器插件,它支持大部分的网络多媒体播放器和多媒体格式,比如:Flash, Windows Media Player, Real ...

  8. 16款最佳的 jQuery Time Picker 时间选择插件

    jQuery 插件可以为你做许多事情,你可以很容易地把这些插件集成到您的网站.网络上的 jQuery 日期选择器和日历插件很多,但找不到很满意的时间选择器插件. 在这里,我们收集了最好的一组 jQue ...

  9. jQuery自定义滚动条样式插件mCustomScrollbar

    如果你构建一个很有特色和创意的网页,那么肯定希望定义网页中的滚动条样式,这方面的 jQuery 插件比较不错的,有两个:jScrollPane 和 mCustomScrollbar. 关于 jScro ...

随机推荐

  1. 【cocos2d-x 手游研发小技巧(4)与Android混编实现换“头像图片”】

    cocos2dx在android平台上的游戏开发中往往会遇到一些混编需求,如: 比方有的社区类游戏需要用到更换玩家的“头像”操作,其实就是调用android servers服务里面的本地图片,以及选取 ...

  2. TestNG参数化之@DataProvider传参

    @parameters适合传递简单少量参数,复杂参数一般使用@DataProvider传递 @DataProvider语法: @DataProvider(name = "dataprovid ...

  3. Java50道经典习题-程序12 计算奖金

    题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:    利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:     ...

  4. 【文文殿下】CF1029F Multicolored Markers

    这道题考场上卡了文文相当长的时间,所以写个题解泄泄愤QAQ 题意:给你$a$块红瓷砖,$b$块白瓷砖,在一个无限大的地上拼装,要求整体是一个矩形,并且至少有一种颜色是一个矩形,求最小周长. 题解: 首 ...

  5. 自定义JSON返回字段

    今天看到一篇文章,里面介绍了如何自定义返回json字段,感觉挺好用的,这里学习一下. 实现工具类: /** * @author fengzp * @date 17/2/20上午10:34 * @ema ...

  6. [CSS3] 动画暗角按钮

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

  7. Java中关键字final用法

    ///首先声明,本文转载自博客园的海子,链接:http://www.cnblogs.com/dolphin0520/p/3736238.html 浅析Java中的final关键字 谈到final关键字 ...

  8. 总结day24 ---- socket ,struct 的学习

    前情提要 一:套接字  socket()  1:三次握手 1:客户端像服务端链接,   (第一次握手) 2:服务端收到请求,告诉客户端服务端收到了内容    (第二次握手1) 3:服务端像客户端连接, ...

  9. 微信内置的浏览器window.location.href 跳转不兼容问题

    1.不兼容苹果手机---->>>>使用模拟触发a标签 <a id="alink" href="http://www.baidu.com&qu ...

  10. 布局优化之ViewStub、Include、merge使用分析

    布局技巧 在Android开发过程中,我们会遇到很多的问题,随着UI界面越来越多,布局的重复性.复杂度也随之增加,所幸的是,Android官方也给出了几个对布局进行优化的方法,下面根据自己的理解对官方 ...