[导读]利用jquery 来操作 listbox和listbox内移动function listbox_move(listfrom,listto) { var size = $(" " + listfrom + " option") size(); var selsize = $(" " + listfrom + " option:s

利用jquery 来操作 listbox和listbox内移动

function listbox_move(listfrom,listto)         {             var size = $("#" + listfrom + " option").size();             var selsize = $("#" + listfrom + " option:selected").size();             if(size>0 && selsize>0)             {                 $.each($("#"+listfrom+" option:selected"), function(i,own){ //                    var stext = $(own).text(); //                    var svalue = $(own).val(); //                    $("#" + listto).append("<option value="" + svalue + "">" + stext + "</option>"); //                    $(own).remove();                     $(own).appendto($("#" + listto));                     $("#" + listfrom + "").children("option:first").attr("selected",true);                 });             }         }                 function listbox_order(listname,action)         {             var size = $("#"+listname+" option").size();             var selsize = $("#"+listname+" option:selected").size();             if(size > 0 && selsize > 0)             {                 $.each($("#"+listname+" option:selected"),function(i,own){                     if(action == "up")                     {                         $(own).prev().insertafter($(own));                     }                     else if(action == "down")//down时选中多个连靠则操作没效果                     {                         $(own).next().insertbefore($(own));                     }                 })             }         }

下面看一款详细代码

/*     name:twoway-select control for jquery     author:arn     date:2009-12-29     remark: ajax url返回数据必须是json格式{state:1,msg:'',fields:[]}             1、右边可以上下拖动             2、$('#div').twowaylist({url:'',onbeforesubmit:'',captioncolumn''});             3、$('#div').twowaylistinit({field_no:'xx',...});             4、$('#div').twowaylistsubmit({'rptid':$('#txtid').val(),'act':'rpt'}) //ajax url用到的参数 */ (function($){ $.addlist = function(t,p) {   if (t.checkbox) return false; //return if already exist     // apply default properties   p = $.extend({       items:[], //all items       captioncolumn:'caption', //显示的名称       isgroupcolumn:'group', //分组checkbox用到的字段       idcolumn:'field_no', //编号字段     height: 320, //default height     width: 'auto', //auto width     url: false, //ajax url     method: 'post', // data sending method     errormsg: 'connection error',     title: false,     datatype:'json',     onsuccess: false, // using a custom populate function     onbeforesubmit: false //提交之前处理事项     }, p);                 //create twoway-select class         var d = {          json2str:function(json)          {           var isarrobj = $.isarray(json);           var arr = [];           //           for (var key in json)           {            var k = isarrobj? '' :  key+":" ;                       if (typeof json[key] == 'object' && json[key] != null)             arr.push(k + d.json2str(json[key]));   //json对象            else             arr.push(k + "'" + decodeuricomponent(json[key]) +"'"); //普通值           }           return isarrobj ? '[' + arr.join(',') + ']' : '{' + arr.join(',') + '}';          },          str2json:function(str)          {           return eval('('+str+')');          },                    l2r:function(o){                                 var json = d.str2json($(o).attr('json'));                 var chk = document.createelement("input");                 //if group                 var chked = json[p.isgroupcolumn]==1?'checked':'';                 $(chk).attr({'type':'checkbox','id':'li'+json[p.idcolumn],'checked':chked});                 $(o).prepend(chk);     $(d.rdiv).find('ol').append(o);                 //change json value,if checkbox state changed                 $(o).find("input:checkbox").bind('click',function()     {         if($(this).attr('checked'))         {             json[p.isgroupcolumn] = 1;                     }else{                         json[p.isgroupcolumn] = 0;                     }                    $(o).attr("json",d.json2str(json));     });       $(d.vinput).val(d.getselected());             },             r2l:function(o){                 $(o).find(":checkbox").remove();           $(d.ldiv).find('ol').append(o);           $(d.vinput).val(d.getselected());             },             l2rall:function(){     $("li", $(d.ldiv).find('ol')).each(function(i,obj){         d.l2r(obj);     });                        },             r2lall:function(){     $("li", $(d.rdiv).find('ol')).each(function(i,obj){         d.r2l(obj);     });                         },             getselected:function(){                 var result=[];                     $(d.rdiv).find('li').each(function(i,obj){         result.push($(this).attr('json'));     });                               return result;             },                  initdata:function(data){                 $(d.ldiv).find('ol').empty();                 $(d.rdiv).find('ol').empty();                 var li;                 var lbl;                 for (i=0;i<data.length;i++){                     var li = document.createelement('li');                     lbl = document.createelement('label');                     if(true)                     {                         $(lbl).text(data[i][p.idcolumn] + ' '+ data[i][p.captioncolumn]); //.attr("for",'li' + data[i][p.idcolumn])                     }else{                         $(lbl).text(data[i][p.captioncolumn]);                     }                     $(li).attr('json',d.json2str(data[i])).append(lbl);                                        $(d.ldiv).find('ol').append(li);                                }                 $(d.ldiv).find('ol li').each(function(i,obj)                 {                     $(obj).bind('dblclick',function()                     {                         if($(this).parent().hasclass('twowaylist-lol'))                         {                             d.l2r(this);                         }else{                             d.r2l(this);                         }                                            }).bind('click',function()                     {                         $(this).toggleclass("ui-selected");                                            });                                 });                         },             ajaxsubmit:function(para){                 if(p.url){                                        if(p.onbeforesubmit) para= p.onbeforesubmit();      $.ajax({         type: p.method,         timeout:20 * 1000,         url: p.url,         async:false,         data: para,         datatype: p.datatype,         success: function(data){              if(data.state == 1)              {                  $(d.caption).html('');                  d.initdata(data.fields);                  if(p.onsuccess) //执行成功后                  {                      p.onsuccess();                  }              }else{                  $(d.caption).html('数据加载失败<br/>' + data.msg );              }         },         error: function(data) { try { alert(data.tostring()) } catch (e) {} },         beforesend:function(data) { },         complete :function(){ }       });                                    }                         }         };                 if(p.width == 'auto')         {             p.width = 600;         }         var mdivwidth = 80;         //init div         d.adiv = document.createelement('div');                 d.ldiv = document.createelement('div');         $(d.ldiv).addclass('twowaylist-oldiv').width((p.width - mdivwidth) /2 ).height(p.height);                 d.rdiv = document.createelement('div');         $(d.rdiv).addclass('twowaylist-oldiv').width((p.width - mdivwidth) /2 ).height(p.height);                 d.mdiv = document.createelement('div');         $(d.mdiv).width(mdivwidth);                 d.mtable = document.createelement('table');         d.mtable.cellpadding = 0;         d.mtable.cellspacing = 0;                 //add button         var br="<br />";         //l2r   var btndiv = document.createelement('input');   $(btndiv).addclass('twowaylist-button').attr({'type':'button','value':'>'});                 $(btndiv).click(             function()             {                 $('.ui-selected', d.ldiv).each(function()                 {                     d.l2r(this);                 });             }         );         $(d.mdiv).append(btndiv);         $(d.mdiv).append(br);         //r2l         btndiv = document.createelement('input');         $(btndiv).addclass('twowaylist-button').attr({'type':'button','value':'<'});         $(btndiv).click(             function()             {                 $('.ui-selected', d.rdiv).each(function()                 {                     d.r2l(this);                 });             }         );         $(d.mdiv).append(btndiv);         $(d.mdiv).append(br);         //l2r all         btndiv = document.createelement('input');   $(btndiv).attr({'type':'button','value':'>>'}).addclass('twowaylist-button');         $(btndiv).click(             function()             {                 d.l2rall();             }         );         $(d.mdiv).append(btndiv);           $(d.mdiv).append(br);          //r2l all         btndiv = document.createelement('input');   $(btndiv).attr({'type':'button','value':'<<'}).addclass('twowaylist-button');         $(btndiv).click(             function()             {                 d.r2lall();             }         );         $(d.mdiv).append(btndiv);                                             $('span',d.mdiv)   .css教程({paddingleft:20})   ;                                    //set div         d.caption = document.createelement("caption");         $(d.mtable).append(d.caption);         //set table th         var thead = document.createelement("thead");         var tr = document.createelement("tr");         var th=document.createelement("th");         $(th).html('待选项');         $(tr).append(th);         th=document.createelement("th");         $(tr).append(th);         th=document.createelement("th");         $(th).html('已选项');         $(tr).append(th);                        $(thead).append(tr);         $(d.mtable).append(thead);         var tbody = document.createelement("tbody");                 tr = document.createelement("tr");                 var td = document.createelement("td");         var lol= document.createelement("ol");         $(lol).addclass('twowaylist-lol');         $(d.ldiv).append(lol);                 $(td).append(d.ldiv);         $(tr).append(td);         td = document.createelement("td");         $(td).append(d.mdiv);         $(tr).append(td);         td = document.createelement("td");                 var rol= document.createelement("ol");         $(rol).addclass("twowaylist-rol");         $(d.rdiv).append(rol);         $(td).append(d.rdiv);         $(tr).append(td);                 $(tbody).append(tr);         $(d.mtable).append(tbody);         $(t).append(d.mtable);                 d.vinput = document.createelement("input");         $(d.vinput).attr({'type':'hidden','id':'twowaylistvalue'});         $(t).append(d.vinput);         //leftlist selectable      //$(lol).selectable();                //rightlist sortable      $(rol).sortable();                     t.list = d;         //load items         if(p.items)         {             d.initdata(p.items);         }         return t;     };     var docloaded = false; $(document).ready(function () {docloaded = true} );     //初始化 $.fn.twowaylist = function(p) {   return this.each( function() {    var t = this;     if (!docloaded)     {      $(this).hide();      $(document).ready      (       function ()       {        $.addlist(t,p);       }      );     } else {      $.addlist(this,p);     }    }); }; //end twowaylist    //初始化列表,参数为json array $.fn.twowaylistinit = function(data) {      return this.each(function(){          if(this.list)          {              this.list.initdata(data);          }      }); }; //end twowaylistinit //ajax提交,获取字段列表,参数如{id:'2'} $.fn.twowaylistsubmit = function(pa) {      return this.each(function(){          if(this.list)          {              this.list.ajaxsubmit(pa);          }      }); }; //end twowaylistsubmit })(jquery);

利用JQuery 来操作 ListBox和ListBox内移动的更多相关文章

  1. 利用jquery判断点是否在椭圆内

    源码例子下载 : <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...

  2. 利用jquery的$.Deferred方法在一个函数内获取另一个函数的返回值

    使用场景:方法B需要方法A执行完成之后再执行,比如方法B中有用到方法A的变量:(需要引入jQuery1.5以后的版本) function A(){ var deffered = new $.Defer ...

  3. 利用jquery操作Radio方法小结

    用Radio来实现用户的选择效果,在项目中积累了一些利用JQUERY来操作Radio的方法,这里与大家分享下 在开发中经常会用到Radio来实现用户的选择效果,我在项目中积累了一些利用JQUERY来操 ...

  4. 利用jQuery对li标签操作

    <ul class="con" id="products"> <li i=" class=""> < ...

  5. 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变

    查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ...

  6. 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作

    $("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...

  7. 利用jquery的imgAreaSelect插件实现图片裁剪示例

    http://www.cnblogs.com/mizzle/archive/2011/10/13/2209891.html 将用户上传的图片进行裁剪再保存是现在web2.0应用中常常处理的工作,现在借 ...

  8. jquery :操作iframe

    原文 jquery :操作iframe 1. 内容里有两个ifame <iframe id="leftiframe"...</iframe> <iframe ...

  9. 160620、利用 jQuery UI 和 Ajax 创建可定制的 Web 界面

    如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化.个性化的主页或仪表板页面(例如 iGoogle.MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚 ...

随机推荐

  1. java的反射机制浅谈(转)

    原文链接:java的反射机制浅谈 一.java的反射机制浅谈 1.何谓反射机制 根据网文,java中的反射机制可以如此定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性 ...

  2. MVC中导航菜单,选中项的高亮问题。

      这个菜单是放在母板页的.比如当前选中的是异常业务监控.如果页面刷新了.就会变成第一张图..选择其他的选项也会,因为页面会刷新嘛.. 怎么处理这个问题了? 答案是记录当前页面的url. 有两种解决思 ...

  3. js将滚动条滚动到指定位置的方法

    代码如下(主要是通过设置Location的hash属性): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...

  4. 自定义View 可清除内容、设置图标、下划线的输入框 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. 为什么static数据成员一定要在类外初始化?(转)

    1.避免重复定义和初始化 <<c++ primer>>说在类外定义和初始化是保证static成员变量只被定义一次的好方法. 但,为什么static const int就可以在类 ...

  6. 在Android上山寨了一个Ios9的LivePhotos,放Github上了

    9月10号的凌晨上演了一场IT界的春晚,相信很多果粉(恩,如果你指坚果,那我也没办法了,是在下输了)都熬夜看了吧,看完打算去医院割肾了吧.在发布会上发布了游戏机 Apple TV,更大的砧板 Ipad ...

  7. 【Spark】SparkStreaming-加载外部配置文件

    SparkStreaming-加载外部配置文件 spark加载配置文件_百度搜索 Spark加载外部配置文件 - CSDN博客 spark读取配置文件中的配置 - CSDN博客 spark加载prop ...

  8. Eclipse里选一个变量后,这个类里的该变量不变色了

    使用“Alt+Shift+O”对该提示功能的开/关切换

  9. List 集合的交集

    private void Test() { List<string> lsA = new List<string>(); lsA.Add("A"); lsA ...

  10. Spring中的代理模式

    代理模式 所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式是一种 ...