我正在尝试拖放页面上的项目,但不是移动项目本身,而是创建它的副本。
这是我的代码。 “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用于干扰我的代码的链接。
答案 0 :(得分:0)
无法找到导致该问题的自动生成代码,因此我只需通过标准HTML锚点替换Hyperlink控件来解决此问题。