基于jquery實(shí)現(xiàn)左右上下移動(dòng)效果
最近再做報(bào)表時(shí)候,直接把全部字段都導(dǎo)出了,但這不太靈活?;貞浝蠋熤v過的項(xiàng)目做報(bào)表如下左右上下移功能靈活控制,所以就嘗試下咯。

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移動(dòng)到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);//給追加獲取焦點(diǎn)
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];
}
//獲取要添加位置對(duì)象
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;
}
頁面調(diào)用
<div>
<div>
<b>未導(dǎo)出字段</b>
</div>
<div style="float:left;">
<select name="left" multiple="multiple" onchange="selected(this)" style="height:350px;width:200px;">
<option value="姓名">姓名</option>
<option value="快件號(hào)">快件號(hào)</option>
<option value="快遞公司">快遞公司</option>
<option value="首重">首重</option>
<option value="續(xù)重">續(xù)重</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>需導(dǎo)出字段</b>
</div>
<div style="float:left;">
<select name="right" multiple="multiple" onchange="selected(this)" style="height:350px;width:200px;">
<option value="首價(jià)">首價(jià)</option>
<option value="續(xù)價(jià)">續(xù)價(jià)</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>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- jquery select多選框的左右移動(dòng) 具體實(shí)現(xiàn)代碼
- jQuery實(shí)現(xiàn)左右兩個(gè)列表框的內(nèi)容相互移動(dòng)功能示例
- jQuery實(shí)現(xiàn)可移動(dòng)選項(xiàng)的左右下拉列表示例
- jquery實(shí)現(xiàn)列表上下移動(dòng)功能
- jquery移動(dòng)點(diǎn)擊的項(xiàng)目到列表最頂端的方法
- jQuery實(shí)現(xiàn)用方向鍵控制層的上下左右移動(dòng)
- jQuery讓控件左右移動(dòng)的三種實(shí)現(xiàn)方法
- jQuery slider Content(左右控制移動(dòng))
- jQuery實(shí)現(xiàn)下拉框左右移動(dòng)(全部移動(dòng),已選移動(dòng))
- Jquery實(shí)現(xiàn)多選下拉列表左右移動(dòng)
相關(guān)文章
jQuery JSON實(shí)現(xiàn)無刷新三級(jí)聯(lián)動(dòng)實(shí)例探討
無刷新三級(jí)聯(lián)動(dòng)的實(shí)現(xiàn)方法有很多,今天將與大家討論下jQuery JSON如何實(shí)現(xiàn),感興趣的朋友們可以參考下哈2013-05-05
基于jQuery實(shí)現(xiàn)帶動(dòng)畫效果超炫酷的彈出對(duì)話框(附源碼下載)
這是一款基于jQuery的彈出對(duì)話框插件,這個(gè)jQuery對(duì)話框插件的最大特點(diǎn)是彈出和關(guān)閉都帶有非常炫酷的動(dòng)畫特效,需要的朋友參考下吧2016-02-02
快速掌握jquery分頁插件jqPaginator的使用方法
這篇文章主要幫助大家快速掌握jquery分頁插件jqPaginator的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
jsonp跨域請(qǐng)求數(shù)據(jù)實(shí)現(xiàn)手機(jī)號(hào)碼查詢實(shí)例分析
這篇文章主要介紹了jsonp跨域請(qǐng)求數(shù)據(jù)實(shí)現(xiàn)手機(jī)號(hào)碼查詢的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jsonp跨域請(qǐng)求數(shù)據(jù)的原理與查詢號(hào)碼的應(yīng)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12
jQuery+jsp實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果(附源碼)
這篇文章主要介紹了jQuery+jsp實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果,以完整實(shí)例形式分析了jQuery結(jié)合jsp讀取MySQL數(shù)據(jù)庫操作實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果的相關(guān)技巧,并附帶完整實(shí)例源碼供讀者下載參考,需要的朋友可以參考下2015-12-12
jQuery fadeTo方法調(diào)整圖片的透明度使用介紹
利用jquery的fadeTo方法可以簡單的制作一些很不錯(cuò)的動(dòng)畫效果.可以使圖片或者文字或者區(qū)塊以不同的透明度效果出現(xiàn).例如以下練習(xí)實(shí)例,感興趣的朋友可以參考下哈2013-05-05
輕量級(jí)網(wǎng)頁遮罩層jQuery插件用法實(shí)例
這篇文章主要介紹了輕量級(jí)網(wǎng)頁遮罩層jQuery插件用法,實(shí)例分析了jquery遮罩層插件的定義、功能及使用方法,非常簡單實(shí)用,需要的朋友可以參考下2015-07-07

