整列交换

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<SCRIPT LANGUAGE="JavaScript">
<!--
var Main_Tab = null;//定义全局变量Main_Tab,使之指向固定表“ExTable”。以后可以使用表对象。
var dragColStart = 0;//初始化拖拽起始表列与结束表列
var dragColEnd = 0;

function ini()
{
Main_Tab = ExTable;  //指向固定表
}
function Changeit(table,sor,tag)    //交换表中的两列,需要遍历每一行,然后交换每一个元素。因为没有表列对象。
{//sor tag 为列的索引
for (var i=0;i<table.rows.length;i++)
table.rows[i].cells[sor].swapNode(table.rows[i].cells[tag]);
}
function movespan(obj)//obj为触发拖动事件的源“td”对象
{
 var nx=event.x,ny=event.y;//当鼠标在表头中点下时的事件的坐标
 setspan();
 function setspan()
        //动态的显示一个拖动中的表“td”对象
 {
  domospan.style.display="";
  domospan.innerText=obj.innerText;//Caption为被拖动对象的Caption
                //offsetWidth是表头文字的宽度,offsetHeight是表头文字的高度
  domospan.style.left=nx-domospan.offsetWidth/2;
  domospan.style.top=ny-domospan.offsetHeight/2;
                //domospan.style.left,top是被移动的文字的左坐标和顶坐标
 }
 function Main_Tab.onmousemove()
        //定义一个只在触发拖动事件后方才运行的OnMouseMove事件
 {//当拖动文字时定文字框的位置offsetWidth、offsetHeigh始终是文字的宽度,t这是一个定植
        domospan.style.left=event.x-domospan.offsetWidth/2;
        domospan.style.top=event.y-domospan.offsetHeight/2;
       }
 function get_Element(the_ele,the_tag)//利用此函数,可以避免出现错误。当拖动目标移到表外是,将忽略错误。
 {//the_ele是元素对象,the_tag是标签名
        the_tag = the_tag.toLowerCase();
        //开始触发
        if(the_ele.tagName.toLowerCase()==the_tag)return the_ele;
        //释放鼠标后
        while(the_ele=the_ele.offsetParent)
        //the_ele.offsetParent是定义the_ele的left top坐标的容器对象的引用,是td
        {
        if(the_ele.tagName.toLowerCase()==the_tag)return the_ele;
        }
        return(null);
 }
 function Main_Tab.onmouseup()
 {
  var the_start = get_Element(obj,"td");
  if (the_start!=null)
  {
              dragColStart= the_start.cellIndex;//td.cellIndex
               //cellIndex ---the position of the object in the cells collection of a row
  } else
  {
   return(null);
  }
  domospan.style.display="none";
                //elementFromPoint的坐标是客户坐标,pixel,一般是从相应evenet 后得到的元素对象
  var the_end = get_Element(document.elementFromPoint(event.x,event.y),"td");
  if (the_end != null )
  {
   dragColEnd = the_end.cellIndex;
  } else
  {
   return(null);
  }
  Changeit(Main_Tab,dragColStart,dragColEnd);
  //Changeit(Main_Tab,1,2);

 }
}
//-->
</SCRIPT>
</head>
<body οnlοad=ini()>
整列移动试验
<table border=1 id="ExTable">
<tr>
<td οnmοusedοwn="movespan(this)" id="td1">语言名称</td>
<td οnmοusedοwn="movespan(this)" id="td2">掌握程度</td>
<td οnmοusedοwn="movespan(this)" id="td3">版本号</td>
<td id="domospan" class="ab" style="position:absolute;background:#f00000;filter:alpha(opacity=50);display:none"></td>
</tr>
<tr>
<td>Delphi</td>
<td>熟练</td>
<td>6.0</td>
</tr>
<tr>
<td>VC</td>
<td>熟练</td>
<td>6.0</td>
</tr>
<tr>
 <td>VB</td>
 <td>了解</td>
 <td>6.0</td>
</tr>
<tr>
 <td>C#</td>
 <td>了解</td>
 <td>DotnetFramWork</td>
</tr>
<tr>
 <td>PB</td>
 <td>不懂</td>
 <td>7.0</td>
</tr>
<tr>
 <td>ASP</td>
 <td>了解</td>
 <td>无</td>
</tr>
<tr>
 <td>JavaScript</td>
 <td>了解</td>
 <td>无</td>
</tr>
<tr>
 <td>QT</td>
 <td>了解</td>
 <td>无</td>
</tr>
<tr>
 <td>Kylix</td>
 <td>了解</td>
 <td>3.0</td>
</tr>
<tr>
 <td>SQL</td>
 <td>了解</td>
 <td>7.0</td>
</tr>
</table>

</body>
</html>

掌握程度版本号语言名称
熟练6.0Delphi
熟练6.0VC
了解6.0VB
了解DotnetFramWorkC#
不懂7.0PB
了解ASP
了解JavaScript
了解QT
了解3.0Kylix
了解7.0SQL

版本号掌握程度语言名称
6.0熟练Delphi
6.0熟练VC
6.0了解VB
DotnetFramWork了解C#
7.0不懂PB
了解ASP
了解JavaScript
了解QT
3.0了解Kylix
7.0了解SQL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值