因为要实现拖拽后把拖拽的行和被拖拽的行更新到数据库中,所以只需要获取源行和目标行就行。下面的代码其实是可以识别源行和目标行的,但是拖拽的效果没有出来。网上看到其它人写的都很复杂,而且都用到了setCapture和releaseCapture,但其过程都需要计算坐标,我觉得拖拽在我这个层次应该是不需要计算坐标的。
不知下面的代码如何改变可以实现拖拽的过程效果,现在拖拽后,虽然可获得结果值,但拖动中会选中所有鼠标经过的行,界面不友好。
<html> <head> <title>拖动行测试</title> <script type="text/javascript"> var beginMoving = false; var objSource = null; function MouseDownToMove(obj) { beginMoving = true; objSource = obj; } function MouseUpToMove(obj) { if (!beginMoving) return false; else beginMoving = false; if (objSource != obj) alert(objSource.id + " 被拖拽到 " + obj.id); } </script> </head> <body> <table cellspacing="5" cellpadding="5" border="1"> <tr id="1" style="cursor: move;" onmousedown='MouseDownToMove(this)' onmouseup='MouseUpToMove(this);'> <td> 111111111111 </td> </tr> <tr id="2" style="cursor: move;" onmousedown='MouseDownToMove(this)' onmouseup='MouseUpToMove(this);'> <td> 222222222222 </td> </tr> <tr id="3" style="cursor: move;" onmousedown='MouseDownToMove(this)' onmouseup='MouseUpToMove(this);'> <td> 333333333333 </td> </tr> </table> </body>
已解决。