首页 > javascript相关 > jquery教程 > 正文

基于jquery实现左右上下移动效果_jquery

2018-11-27 22:24:05

最近再做报表时候,直接把全部字段都导出了,但这不太灵活。回忆老师讲过的项目做报表如下左右上下移功能灵活控制,所以就尝试下咯。

js代码

function selected(thiz) {  var name = thiz.name;  if(name=="right")   $("select[name='left']").val("");  else   $("select[name='right']").val(""); } function Shift(thiz) {  var right = $("select[name='right']");  var left = $("select[name='left']");  if(thiz=="left" && right.val() != ""){   lrShift(right,left);  }else if(thiz=="right" && left.val() != ""){   lrShift(left,right);  }   //获取选中的值 } //从dest移动到target function lrShift(dest,target) {  var childrens = dest.children();  var args = "";  //alert(dest.val());  var dests = dest.val()  for(var x = 0; x < dests.length; x++)  {   var vaTemp = dests[x];   target.append("<option value='"+vaTemp+"'>"+vaTemp+"</option>");//追加   target.find("option[value='"+vaTemp+"']").attr("selected",true);//给追加获取焦点   for(var y = 0; y <childrens.length;y++ )//删除选中的元素   {    if(childrens.get(y).value==vaTemp)     $(childrens.get(y)).remove();   }  }  dest.val(""); } function ShiftValue(address) {  var right = $("select[name='right']");  var left = $("select[name='left']");  if(right.val()!=null)   shift(right,address);  else if(left.val()!=null)   shift(left,address); } function shift(obj,address){   //获取选中的值   var objData = obj.val();   var childrens = obj.children();   var strs = "";   for(var x = 0; x < objData.length; x++)   {    strs+="@"+objData[x];   }    //获取要添加位置对象   var temp = null;   if(address=="top"){    var number = findSelect(childrens,objData[0]);    if((--number) < 0)     return;    temp = childrens.get(number);   }   else{    var number = findSelect(childrens,objData[objData.length-1]);    if((++number) > childrens.length-1)     return;    temp = childrens.get(number);   }    //删除选中的值   var n = 0;   var buffer = new Array(childrens.length-objData.length);   for(var x = 0; x < childrens.length;x++)   {    var value = childrens.get(x).value;    if(strs.indexOf(value)==-1)     buffer[n++] = value;   }    //添加新排序的值   obj.empty();   if(address=="top")   {    for(var y = 0; y < buffer.length;y++)    {     if(buffer[y]==temp.value)     {      for(var x = 0; x < objData.length ; x++)      {       obj.append("<option>"+objData[x]+"</option>");      }     }     obj.append("<option>"+buffer[y]+"</option>");    }   }else{    for(var y = 0; y < buffer.length;y++)    {     obj.append("<option>"+buffer[y]+"</option>");     if(buffer[y]==temp.value)     {      for(var x = 0; x < objData.length; x++)      {       obj.append("<option>"+objData[x]+"</option>");      }     }    }   }   //选中值   obj.val(objData); } function findSelect(selects,objValue) {  var number = -1;  for(var x = 0; x < selects.length; x++)  {   if(objValue==selects.get(x).value)    number = x;  }  return number; } 

页面调用

<div>   <div>    <b>未导出字段</b>   </div>   <div style="float:left;">    <select name="left" multiple="multiple" onchange="selected(this)" style="height:350px;width:200px;">     <option value="姓名">姓名</option>     <option value="快件号">快件号</option>     <option value="快递公司">快递公司</option>     <option value="首重">首重</option>     <option value="续重">续重</option>    </select>   </div>  </div>  <div style="float:left;">   <div style="margin:30px;margin-top:110px;">   <input type="button" value="<<" onclick="Shift('left')"/>  </div>   <div style="margin:30px;margin-top:30px;">   <input type="button" value=">>" onclick="Shift('right')"/>  </div>  </div>  <div style="margin-top:-20px;">   <div style="margin-left:22%;">    <b>需导出字段</b>   </div>   <div style="float:left;">    <select name="right" multiple="multiple" onchange="selected(this)" style="height:350px;width:200px;">     <option value="首价">首价</option>     <option value="续价">续价</option>     <option value="大大">大大</option>     <option value="小小">小小</option>    </select>   </div>  </div>  <div style="float:left;">   <div style="margin:30px;margin-top:110px;">   <input type="button" value="向上" onclick="ShiftValue('top')" />   </div>   <div style="margin:30px;margin-top:30px;">   <input type="button" value="向下" onclick="ShiftValue('bottom')" />  </div>  </div> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 相关标签:jquery教程
  • 本文发布HTML5中文学习网 ,转载请注明出处,感谢您!
  • 相关文章


  • 曝网友假装外国人写投诉信 ofo秒退押金并回函致歉
  • 苹果市值缩水逾2000亿美元 遭多家投行下调目标价
  • Asp.net Core与类库读取配置文件信息的方法_实用技巧
  • asp.net在Repeater嵌套的Repeater中使用复选框详解_实用技巧
  • 利用IIS调试ASP.NET网站程序的完整步骤_实用技巧
  • Asp.Net Core轻松学习系列之配置文件_实用技巧
  • ASP.NET 页生命周期概述(小结)_实用技巧
  • 详解ASP.NET Core WebApi 返回统一格式参数_实用技巧
  • 2018年网络流行语有哪些?2018年十大网络流行语盘点
  • 华为首席财务官孟晚舟被暂扣 深圳市政府要求加方立即放人!
  • 独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    作者信息

    kevin

    永远在学习的路上!

    相关教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 热门教程