复制,拖动; drop bug:item停止移动

时间:2010-12-28 16:15:17

标签: javascript asp.net

我正在尝试拖放页面上的项目,但不是移动项目本身,而是创建它的副本。

这是我的代码。 “copyDragDrop”是页面底部的div。在用户拖拽某些东西之前,它一直是空的。

function coordSouris()
{
 return {
  x:event.clientX + document.body.scrollLeft - document.body.clientLeft,
  y:event.clientY + document.body.scrollTop  - document.body.clientTop
    };
}

function drag()
{
    var pos = coordSouris(event);
    copie = event.srcElement.cloneNode(true);
    document.getElementById('copieDragDrop').appendChild(copie);
    copie.style.position = 'absolute';
    copie.style.display = 'block';

    document.onmousemove = mouseMove;
    document.onmouseup = drop;
}


function mouseMove()
{
    if (copie != null)
    {
        var pos = coordSouris(event);
        copie.style.left = pos.x;
        copie.style.top = pos.y;
    }
}

function drop()
{
    var divCopie = document.getElementById('copieDragDrop');
    if (divCopie.hasChildNodes() )
    {
        while ( divCopie.childNodes.length >= 1 )
        {
            divCopie.removeChild(divCopie.firstChild);       
        } 
    }
}

此代码创建副本,开始移动它,但在几个像素后,副本将停止跟随鼠标。如果我释放鼠标,则不会触发“onmouseup”,但副本会再次开始跟随鼠标!我已经尝试了几个项目的代码,同样的错误发生

我什么都不懂,任何帮助都非常受欢迎。

更新:我juste意识到我尝试代码的所有元素都有一些共同点:它们包含或包含在ASP.net超链接控件中。相同的代码适用于常规HTML元素。必须有一些自动生成的javascript用于干扰我的代码的链接。

1 个答案:

答案 0 :(得分:0)

无法找到导致该问题的自动生成代码,因此我只需通过标准HTML锚点替换Hyperlink控件来解决此问题。