利用JQuery 来操作 ListBox和ListBox内移动
[导读]利用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内移动的更多相关文章
- 利用jquery判断点是否在椭圆内
源码例子下载 : <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...
- 利用jquery的$.Deferred方法在一个函数内获取另一个函数的返回值
使用场景:方法B需要方法A执行完成之后再执行,比如方法B中有用到方法A的变量:(需要引入jQuery1.5以后的版本) function A(){ var deffered = new $.Defer ...
- 利用jquery操作Radio方法小结
用Radio来实现用户的选择效果,在项目中积累了一些利用JQUERY来操作Radio的方法,这里与大家分享下 在开发中经常会用到Radio来实现用户的选择效果,我在项目中积累了一些利用JQUERY来操 ...
- 利用jQuery对li标签操作
<ul class="con" id="products"> <li i=" class=""> < ...
- 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变
查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ...
- 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作
$("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...
- 利用jquery的imgAreaSelect插件实现图片裁剪示例
http://www.cnblogs.com/mizzle/archive/2011/10/13/2209891.html 将用户上传的图片进行裁剪再保存是现在web2.0应用中常常处理的工作,现在借 ...
- jquery :操作iframe
原文 jquery :操作iframe 1. 内容里有两个ifame <iframe id="leftiframe"...</iframe> <iframe ...
- 160620、利用 jQuery UI 和 Ajax 创建可定制的 Web 界面
如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化.个性化的主页或仪表板页面(例如 iGoogle.MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚 ...
随机推荐
- java的反射机制浅谈(转)
原文链接:java的反射机制浅谈 一.java的反射机制浅谈 1.何谓反射机制 根据网文,java中的反射机制可以如此定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性 ...
- MVC中导航菜单,选中项的高亮问题。
这个菜单是放在母板页的.比如当前选中的是异常业务监控.如果页面刷新了.就会变成第一张图..选择其他的选项也会,因为页面会刷新嘛.. 怎么处理这个问题了? 答案是记录当前页面的url. 有两种解决思 ...
- js将滚动条滚动到指定位置的方法
代码如下(主要是通过设置Location的hash属性): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...
- 自定义View 可清除内容、设置图标、下划线的输入框 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 为什么static数据成员一定要在类外初始化?(转)
1.避免重复定义和初始化 <<c++ primer>>说在类外定义和初始化是保证static成员变量只被定义一次的好方法. 但,为什么static const int就可以在类 ...
- 在Android上山寨了一个Ios9的LivePhotos,放Github上了
9月10号的凌晨上演了一场IT界的春晚,相信很多果粉(恩,如果你指坚果,那我也没办法了,是在下输了)都熬夜看了吧,看完打算去医院割肾了吧.在发布会上发布了游戏机 Apple TV,更大的砧板 Ipad ...
- 【Spark】SparkStreaming-加载外部配置文件
SparkStreaming-加载外部配置文件 spark加载配置文件_百度搜索 Spark加载外部配置文件 - CSDN博客 spark读取配置文件中的配置 - CSDN博客 spark加载prop ...
- Eclipse里选一个变量后,这个类里的该变量不变色了
使用“Alt+Shift+O”对该提示功能的开/关切换
- List 集合的交集
private void Test() { List<string> lsA = new List<string>(); lsA.Add("A"); lsA ...
- Spring中的代理模式
代理模式 所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式是一种 ...