先顶上去
期望两位大侠能够看到而再次帮助
原结帖地址:
http://community.csdn.net/Expert/topic/4453/4453445.xml?temp=.9235651

解决方案 »

  1.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>JK:支持民族工业,尽量少买X货</title>
    <style>
    .removableObj
    {
    height:25;position:relative;display:block;background-color:cccccc;
    }
    </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){
        obj.clickReturnValue=true;
    if(!beginMoving) return true;
    obj.releaseCapture();
    obj.style.top=0;
    obj.style.left=0;
    obj.style.zIndex=0;
    beginMoving=false;
    if(event.clientY!=obj.mouseDownY || event.clientX!=obj.mouseDownX) 
    {
      obj.clickReturnValue=false;
      window.setTimeout("swapFun()",20);
    }
    }function MouseOverFun(obj)
    {
    objectObj=obj;
    }function swapFun()
    {
    if(sourceObj!=null && objectObj!=null )
    sourceObj.swapNode(objectObj);
    sourceObj=null;
    objectObj=null;
    }
    </script>
    </head><body>
    部分代码来自:JK的用鼠标移动TD                          
        <a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">a1</a>
        <a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">a2</a>                          
        <a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">b1</a>                          
        <a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">b2</a>                          
    </body></html>
      

  2.   

    非常感谢JK,你的方法很好
    昨天晚上我已经解决了,我是这样做的:
    var beginMoving=false;//begin move
    var sourceObj=null;   // source object
    var objectObj=null;   //target object
    function MouseDownToMove(obj,event)
    {
       obj.style.zIndex=1;
       obj.mouseDownY=event.clientY;
       obj.mouseDownX=event.clientX;
       beginMoving=true;
       obj.setCapture();
       sourceObj=obj;
       objectObj=null;
    }
    function MouseMoveToMove(obj,event)
    {
        if(!beginMoving)
    {
       return false;
    }
        obj.style.top = (event.clientY-obj.mouseDownY);
        obj.style.left = (event.clientX-obj.mouseDownX);
    //in order to don't open a window,so disable it's onclick
        obj.onclick=new Function("return false");
    }
    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 )
        {
           //enable sourceObj's onclick,in order to open a new window when click
       sourceObj.onclick=null;
           sourceObj.swapNode(objectObj);
        }
        sourceObj=null;
        objectObj=null;
    }就是设置对象的onclick属性
    对了,现在暂时不能够结帖
    因为我的分还不够
    等我够50分的时候再结帐给你
    非常感谢你的帮助
      

  3.   

    不知道为什么,我改了好久的代码
    他们在firefox下都没有效果
    老是提示什么top,left没有属性啊,晕死
    也不能够拖动
    如果能够跨浏览器那太好拉
      

  4.   

    JK的代码只是示例
    仅通过5.5+sp2或以上ie测试
    如果想支持其它的浏览器,
    需要自行更改代码
      

  5.   

    我在修改
    但是老是出错
    对于event的错误已经搞好
    就是那个老是提示什么top left属性出错啊在firefox下面
    非常感谢JK
    不知道还可以帮下么?
    谢谢
      

  6.   

    现在竟然出现个莫名其妙的问题,如果把
    <style>
    .removableObj
    {
    height:25;position:relative;
    }
    </style>
    改成
    <style>
    .removableObj
    {
    position:relative;
    }
    </style>
    就会出现只能够从下面网上面拖,不能够从上面网下面拖,而我的即使写了
    <style>
    .removableObj
    {
    height:25;position:relative;
    }
    </style>
    也不能够从上面网下面拖,只能够从下面往上面拖啊,真的郁闷啊
      

  7.   

    晕死啊
    原来是不能够写:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    写这行就出错啊
      

  8.   

    所以不对firefox编程,最多是拿try catch把错误屏蔽了
      

  9.   

    上面的代码是在ie里面出错啊,不是在firefox,在firefox里面他理都不理啊
    主要是写了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    他就只能够从下往上拖动而不能够从上往下拖动啊
      

  10.   


    <a href = "#1"  ondragend="dropend()" style="color:red">drag a link to here I</a><br>
    <a href = "#2"  ondragend="dropend()" style="color:blue">drag a link to here II</a><br>
    <a href = "#3"  ondragend="dropend()" style="color:pink">drag a link to here III</a><br>
    <a href = "#4"  ondragend="dropend()" style="color:pink"><img width=100 height=100 alt="drag a link to here IV"></a><br>
    <script>
    function swapobj(a,b)
    {
    var c = a.outerHTML;
    a.outerHTML = b.outerHTML;
    b.outerHTML = c;
    }
    function dropend()
    {
    var obj = event.srcElement;
    var src =document.elementFromPoint(event.clientX, event.clientY); while(src && src.tagName != "A")
    src = src.parentElement;
    //alert(src.outerHTML);
    if(src && src.tagName == "A" && src != obj)
    {
    swapobj(obj,src);
    }

    }
    </script>
      

  11.   

    非常感谢
    但是你的代码在firefox下也没有用啊
    他也不理啊
    不知道什么原因
    我先加分再说
      

  12.   

    此帖我已经加分40
    因为我只有40分了,过几天再加
    继续求firefox的解决方法
    谢谢