为什么';在Firefox中使用JavaScript拖动图像是否有效?

为什么';在Firefox中使用JavaScript拖动图像是否有效?,javascript,firefox,drag-and-drop,mouseevent,dom-events,Javascript,Firefox,Drag And Drop,Mouseevent,Dom Events,我使用下面的代码来拖动图像(#StndSoln1)。它在Chrome和所有浏览器中都能完美工作,但在Firefox中却不行。这里startDrag()是我附加到mousedown事件侦听器的函数。谁能帮帮我吗 function initialFunction(){ document.getElementById("StndSoln1").addEventListener('mousedown',startDrag,false); document.getElementById("StndSo

我使用下面的代码来拖动图像(
#StndSoln1
)。它在Chrome和所有浏览器中都能完美工作,但在Firefox中却不行。这里startDrag()是我附加到mousedown事件侦听器的函数。谁能帮帮我吗

function initialFunction(){


document.getElementById("StndSoln1").addEventListener('mousedown',startDrag,false);
document.getElementById("StndSoln1").addEventListener('mousemove',drag,false);
document.getElementById("StndSoln1").addEventListener('mouseup',stopDrag,false);


}


function startDrag()

{

if (!moveFlag){


currentTraget=document.getElementById("StndSoln1");

offsetX=currentTraget.offsetLeft;
offsetY=currentTraget.offsetTop;
ImgPlaced=false;    
moveFlag=true;

x=window.event.clientX;
y=window.event.clientY; 

event.preventDefault();
}
}

   // Fn for drag the current target object...
  function drag(){

if (moveFlag && !ImgPlaced){    
    currentTraget.style.left=(offsetX+window.event.clientX-x)+"px";
    currentTraget.style.top=(offsetY+window.event.clientY-y)+"px";
}
}

实际上,我也遇到了类似的问题,所以即使没有您正在使用的代码,我也可以尝试提供帮助

看,Firefox开发人员有一个聪明的想法,就是当你拖动一个图像时,你可以“移动”它,并可能将它放在浏览器窗口中,以便快速轻松地下载它,或者放在标签栏中,在新的标签中打开图像。这样做的明显缺点是,它会导致其他浏览器没有的默认行为


简单的解决方案是确保所有事件都正确地取消默认操作(
event.preventDefault
returnfalse
,诸如此类)。如果这也失败了,那么您应该使用带有背景图像的
元素,而不是
元素。

这个代码除了设置一些变量之外,实际上没有什么作用。。。。所以我想知道它是如何在chrome中拖拽图像的。当你有诸如Traget而不是Target这样的拼写错误时,我开始怀疑即使有人向你解释,你是否能够让它工作。这就是为什么我们其他人使用像jQuery这样的库的原因