|           编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。 【实例名称】 JS代码实现动态改变表格的行顺序 【实例描述】 Ajax技术可以实现表格的多项特性,如拖动、编辑等,其实现的本质依然是JavaScript技术。本例将使用JaVaScript实现表格的行拖动。 【实例代码】 <html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>无标题页-本站(www.xue51.com)</title>
<script language="javascript">
var beginMoving=false;   //判断是否移动的标识-移动开关
//鼠标按下时的操作
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;             //关闭移动开关
    var tempTop=event.clientY-obj.mouseDownY;
    var tempRowIndex=(tempTop-tempTop%20)/20;  
//根据行高度获取行位置索引
    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”释放鼠标为止。最后根据行的高度判断行的位置索引,使用“move”方法移动行到指定位置。 【源码下载】 如果你不愿复制代码及提高代码准确性,你可以点击:动态改变表格的行顺序 进行本实例源码下载  
 使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。 
 |