有点类似这个
http://community.csdn.net/Expert/topic/4239/4239286.xml?temp=.9276239我把其中的this改成this.parentElement,好像能实现,但是几分钟才能有相应

解决方案 »

  1.   

    楼上的能发给我吗[email protected]
      

  2.   

    JK的代码移动的时候没问题啊?你复制下直接运行
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>one</title>
    <style>
    .removableObj
    {
    height:25;position:relative;
    }
    </style>
    <script language="javascript">
    var beginMoving=false;
    var sourceObj=null;
    var objectObj=null;
    function MouseDownToMove(obj){
    obj.style.zIndex=1;
    obj.mouseDownY=event.clientY;
    obj.mouseDownX=event.clientX;
    beginMoving=true;
    obj.setCapture();
    sourceObj=obj;
    objectObj=null;
    }function MouseMoveToMove(obj){
        if(!beginMoving) return false;
    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;
    window.setTimeout("swapFun()",10);
    }function MouseOverFun(obj)
    {
    objectObj=obj;
    }function swapFun()
    {
    if(sourceObj!=null && objectObj!=null )
    sourceObj.swapNode(objectObj);
    sourceObj=null;
    objectObj=null;
    }
    </script>
    </head><body><div align="center">
      <table border="0" cellpadding="2" width="100%" id="table1">
        <tr>
          <td width="243" class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <a href="http://www.csdn.net">edit</a></th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li>1</li>
                <li>2</li>
                <li>3</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title2</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li>four</li>
                <li>five</li>
                <li>six</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title3</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li>7</li>
                <li>8</li>
                <li>9</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
        </tr>
        <tr>
          <td width="243" class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title4</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li>aaa</li>
                <li>bbb</li>
                <li>ccc</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title5</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li>aaaaa</li>
                <li>bbbbb</li>
                <li>ccccc</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title6</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li>aaadf</li>
                <li>bbadfb</li>
                <li>ccadsfc</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
        </tr>
      </table>
    </div></body></html>
      

  3.   

    谢谢楼上的,JK的代码移动td是没有问题,但是我每个独立的table里面的那些表项也是能够相互移动的,
    当我的焦点落在独立的table里面,比如title1,title2等的时候,我就是需要移动其中的表项了。我就是这里没有搞定啊。
      

  4.   

    我要的效果是:
    (1)当鼠标在某表格的Thead上时,移动整个表格
    (2)当鼠标在某表格的Tbody内时,移动Tbody内的那些five,six等等
      

  5.   

    具体的也没问题
    页面位置你在加CSS或TABLE对齐下,粗略的代码如下
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>one</title>
    <style>
    .removableObj
    {
    height:25;position:relative;
    }
    </style>
    <script language="javascript">
    var beginMoving=false;
    var sourceObj=null;
    var objectObj=null;
    function MouseDownToMove(obj){
    obj.style.zIndex=1;
    obj.mouseDownY=event.clientY;
    obj.mouseDownX=event.clientX;
    beginMoving=true;
    obj.setCapture();
    sourceObj=obj;
    objectObj=null;
    }function MouseMoveToMove(obj){
        if(!beginMoving) return false;
    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;
    window.setTimeout("swapFun()",10);
    }function MouseOverFun(obj)
    {
    objectObj=obj;
    }function swapFun()
    {
    if(sourceObj!=null && objectObj!=null )
    sourceObj.swapNode(objectObj);
    sourceObj=null;
    objectObj=null;
    }
    </script>
    </head><body><div align="center">
      <table border="0" cellpadding="2" width="100%" id="table1">
        <tr>
          <td width="243"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  <a href="http://www.csdn.net">edit</a></th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">1</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">2</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">3</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title2</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">four</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">five</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">six</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td> 
           <table width=100% bordercolorlight="#FFFF00" border="1" >
             <thead><tr><th>
                  <p align="left">Title3</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">7</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">8</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">9</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
        </tr>
      </table>
    </div></body></html>
      

  6.   

    可能我没有把问题描述清楚,我的意思是:可以移动的对象是嵌套的,就好像上面,table和table之间可以换位置,table里面的Li之间也可以换位置,我要的是这个效果。anyway,谢谢各位。
      

  7.   

    路过,<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>one</title>
    <style>
    .removableObj
    {
    height:25;position:relative;
    }
    </style>
    <script language="javascript">
    var beginMoving=false;
    var sourceObj=null;
    var objectObj=null;
    function MouseDownToMove(obj){
    event.cancelBubble=true;
    obj.style.zIndex=1;
    obj.mouseDownY=event.clientY;
    obj.mouseDownX=event.clientX;
    beginMoving=true;
    obj.setCapture();
    sourceObj=obj;
    objectObj=null;
    }function MouseMoveToMove(obj){
    event.cancelBubble=true;
        if(!beginMoving) return false;
    obj.style.top = (event.clientY-obj.mouseDownY);
    obj.style.left = (event.clientX-obj.mouseDownX);
    }
    function MouseUpToMove(obj){
    event.cancelBubble=true;
    if(!beginMoving) return false;
    obj.releaseCapture();
    obj.style.top=0;
    obj.style.left=0;
    obj.style.zIndex=0;
    beginMoving=false;
    window.setTimeout("swapFun()",10);
    }function MouseOverFun(obj)
    {
    event.cancelBubble=true;
    objectObj=obj;
    }function swapFun()
    {
    if(sourceObj!=null && objectObj!=null && sourceObj.tagName==objectObj.tagName)
    sourceObj.swapNode(objectObj);
    sourceObj=null;
    objectObj=null;
    }
    </script>
    </head><body><div align="center">
      <table border="0" cellpadding="2" width="100%" id="table1">
        <tr>
          <td width="243"> 
           <table width=100% bordercolorlight="#FFFF00" border="1" class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">
             <thead ><tr><th>
                  <p align="left">Title1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
                  <a href="http://www.csdn.net">edit</a></th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">1</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">2</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">3</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td> 
           <table width=100% bordercolorlight="#FFFF00" border="1" class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">
             <thead ><tr><th>
                  <p align="left">Title2</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">four</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">five</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">six</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
          <td> 
           <table width=100% bordercolorlight="#FFFF00" border="1" class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">
             <thead><tr><th>
                  <p align="left">Title3</th></tr></thead>
             <tbody><tr><td>
                <ul>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">7</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">8</li>
                <li class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);">9</li>
                </ul>
             </td></tr></tbody>
           </table>
          </td>
        </tr>
      </table>
    </div></body></html>
      

  8.   

    <html>
    <head>
    <title> Drag Demo 2 </title>
    <style type="text/css">
    <!--
    #drag{
    width:100px;
    height:20px;
    background-color:#eee;
    border:1px solid #333;
    position:absolute;
    top:30px;
    left:200px;
    text-align:center;
    cursor:default;
    }
    //-->
    </style>
    <script type="text/javascript">
    <!--
    window.onload=function(){
    drag(document.getElementById('drag'),[200,400,30,30]);
    };function drag(o,r){
    o.onmousedown=function(a){
    var d=document;if(!a)a=window.event;
    var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
    if(o.setCapture)
    o.setCapture();
    else if(window.captureEvents)
    window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP); d.onmousemove=function(a){
    if(!a)a=window.event;
    if(!a.pageX)a.pageX=a.clientX;
    if(!a.pageY)a.pageY=a.clientY;
    var tx=a.pageX-x,
    ty=a.pageY-y;
    o.style.left=tx<r[0]?r[0]:tx>r[1]?r[1]:tx;
    o.style.top=ty<r[2]?r[2]:ty>r[3]?r[3]:ty;
    }; d.onmouseup=function(){
    if(o.releaseCapture)
    o.releaseCapture();
    else if(window.captureEvents)
    window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);

    d.onmousemove=null;
    d.onmouseup=null;
    };
    };
    }
    //-->
    </script>
    </head><body>
    <div id="drag">drag me</div>
    </body>
    </html>
    这个是随便写,楼主可以看着改,支持跨浏览器的。
    写js还是靠自己琢磨,比较负责只能写到这里。楼主,研究一下比较好。尤其是跨浏览器部分。
      

  9.   

    娃哈哈,谢谢JK!!
    ----------------
    验证好再用,请注意以下这句:
    if(sourceObj!=null && objectObj!=null && sourceObj.tagName==objectObj.tagName)
    它可以使一个table里的明细跟另一个table里的明细对调
    如果要求“明细只能在table内部对调”,就把这一句改成:
    if(sourceObj!=null && objectObj!=null && sourceObj.parentElement==objectObj.parentElement)
      

  10.   

    谢谢各位的帮助,
    谢谢JK,luoying_81,hbhbhbhbhb1021等诸位因为对js不熟,抱歉再次麻烦各位http://community.csdn.net/Expert/topic/4519/4519968.xml?temp=.2551233此贴先结了,大家有时间的话再帮我看看上面这个