<table border=1 style="position:absolute;width:200;height:200;" onmousedown=MouseDown(this) onmousemove=MouseMove() onmouseup=MouseUp()>
<tr>
    <td bgcolor=#66CCFF >(A)点这里可以拖动位置,整个表格都移动位置</td>
</tr>
<tr>
    <td bgcolor=#CCCCFF onmousedown="event.cancelBubble=true;">(B)点这里不可以拖动,但点A拖动B也同时一起动的</td>
</tr>
</table><script>
var Obj
function MouseDown(obj){
Obj=obj
Obj.setCapture()
Obj.l=event.x-Obj.style.pixelLeft
Obj.t=event.y-Obj.style.pixelTop
}
function MouseMove(){
if(Obj!=null){
Obj.style.left = event.x-Obj.l
Obj.style.top = event.y-Obj.t
}
}
function MouseUp(){
if(Obj!=null){
Obj.releaseCapture()
Obj=null
}
}
</script>

解决方案 »

  1.   

    <script>
    function beginDrag(elementToDrag,event)  { var delatX=event.clientX-parseInt(elementToDrag.style.left);
    var delatY=event.clientY-parseInt(elementToDrag.style.top);
    document.attachEvent("onmousemove",moveHandler);
    document.attachEvent("onmouseup",upHandler);
    event.cancelBubble=true;
    event.returnValue=false; function moveHandler(e)  {
    if(!e) e=window.event;
    elementToDrag.style.left=(e.clientX-delatX)+"px";
    elementToDrag.style.top=(e.clientY-delatY)+"px";
    e.cancelBubble=true;
    } function upHandler(e) {
    if(!e) e=window.event;
    document.detachEvent("onmouseup",upHandler);
    document.detachEvent("onmousemove",moveHandler);
    e.cancelBubble=true;
    elementToDrag.style.left=elementToDrag.style.left;
    elementToDrag.style.top=elementToDrag.style.top;
        }
    }</script>
    <table border=1 id="bao" style="position:absolute;left:0px;top:0px;">
    <tr>
        <td bgcolor=#66CCFF onmousedown="beginDrag(bao,event);">
    (A)点这里可以拖动位置,整个表格都移动位置</td>
    </tr>
    <tr>
        <td bgcolor=#CCCCFF>(B)点这里不可以拖动,但点A拖动B也同时一起动的</td>
    </tr>
    </table>
      

  2.   

    谢谢,但我想居中像这样不可以呀。style="position:absolute;left:screen.availWidth/2;top:screen.availHeight/2;"
      

  3.   

    left:expression((screen.width-400)/2);top:expression((screen.height-250)/2)