當前位置:軟件學堂 > 資訊首頁 > 網(wǎng)絡(luò)編程 > 編程其他 > JS代碼實現(xiàn)動態(tài)改變表格的行順序

JS代碼實現(xiàn)動態(tài)改變表格的行順序

2012/10/30 19:41:59作者:佚名來源:網(wǎng)絡(luò)

移動端

【實例名稱】

JS代碼實現(xiàn)動態(tài)改變表格的行順序

【實例描述】

Ajax技術(shù)可以實現(xiàn)表格的多項特性,如拖動、編輯等,其實現(xiàn)的本質(zhì)依然是JavaScript技術(shù)。本例將使用JaVaScript實現(xiàn)表格的行拖動。

【實例代碼】

<html xmlns="http://www.w3.org/1999/xhtml" > <head>     <title>無標題頁-學無憂(wangbatian.cn)</title> <script language="javascript"> var beginMoving=false;   //判斷是否移動的標識-移動開關(guān) //鼠標按下時的操作 function MouseDownToMove(obj){     obj.style.zIndex=1;               //樣式     obj.mouseDownY=event.clientY;     //鼠標Y坐標     obj.mouseDownX=event.clientX;     //鼠標X坐標     beginMoving=true;                 //開始移動     obj.setCapture();                 //捕獲鼠標操作 } //鼠標按下并移動時的操作 function MouseMoveToMove(obj){   if(!beginMoving) return false;     //改變目標行的X.Y坐標     obj.style.top = (event.clientY-obj.mouseDownY);     obj.style.left = (event.clientX-obj.mouseDownX); } //鼠標抬起時的操作 function MouseUpToMove(obj){     if(!beginMoving) return false;       obj.releaseCapture();           //釋放對鼠標的捕獲     obj.style.top=0;                  obj.style.left=0;     obj.style.zIndex=0;     beginMoving=false;             //關(guān)閉移動開關(guān)     var tempTop=event.clientY-obj.mouseDownY;     var tempRowIndex=(tempTop-tempTop%20)/20;  //根據(jù)行高度獲取行位置索引     if(tempRowIndex+obj.rowIndex <0 )         tempRowIndex=-1;     else tempRowIndex=tempRowIndex+obj.rowIndex;            //實際的行索引     if(tempRowIndex >= obj.parentElement.rows.length-1) tempRowIndex = obj.parentElement.rows.length-1;     obj.parentElement.moveRow(obj.rowIndex,tempRowIndex);  //移動行到指定位置 } </script> </head> <body> <TABLE WIDTH="300" BORDER="1" > <TR  style='height:20;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'><TD >第一行</TD> <TD>第一行</TD><TD>第一行</TD></TR> <TR  style='height:20;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'><TD >第二行</TD> <TD>第二行</TD><TD>第二行</TD></TR> <TR  style='height:20;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'><TD >第三行</TD> <TD>第三行</TD><TD>第三行</TD></TR> </TABLE> </body> </html>

【運行效果】

                                                                   初始運行效果

運行效果

                                                               拖動后的效果

運行效果

【難點剖析】

本例的重點是鼠標的三個方法:按下、移動和抬起,使用“setCapture”捕獲鼠標的操作一直到“releaseCapture”釋放鼠標為止。最后根據(jù)行的高度判斷行的位置索引,使用“move”方法移動行到指定位置。

【源碼下載】

如果你不愿復(fù)制代碼及提高代碼準確性,你可以點擊:動態(tài)改變表格的行順序 進行本實例源碼下載 

標簽: 表格  JS代碼