Нашёл в инете
//// отключаем обработку событий по умолчанию, связанных с перемещением блока (это убирает глюки с выделением текста в других HTML-блоках, когда мы перемещаем объект)
if( e.preventDefault ) e.preventDefault();
else e.returnValue = false;
исправленный вариант:
var changePosition=null,offX=null,offY=null;
function elemPhysics()
{
this.move=function a(id,e)
{
e = e || window.event;
if( e.preventDefault ) e.preventDefault();
else e.returnValue = false;
if(changePosition)
{
changePosition=document.getElementById(id);
var x=e.clientX-offX;
var y=e.clientY-offY;
changePosition.style.left=x+"px";
changePosition.style.top=y+"px";
}
}
this.release=function b()
{
changePosition=null;
}
this.capture=function c(e)
{
e = e || window.event;
if( e.preventDefault ) e.preventDefault();
else e.returnValue = false;
offX=e.offsetX || e.layerX;
offY=e.offsetY || e.layerY;
if(!changePosition)
{
changePosition=document.getElementById("el");
}
}
}
var element=new elemPhysics();