function drag(target,event){ var startX = event.clientX; var startY =
event.clientY;
var origX = target.offsetLeft; var origY = target.offsetTop;
var deltaX = startX - origX; var deltaY = startY - origY;
if (target.attachEvent) { //IE事件模型 //设置该元素直接捕获该事件 target.setCapture();
target.attachEvent("onmousemove", moveHandler);
target.attachEvent("onmouseup", upHandler);
target.attachEvent("onlosecapture", upHandler); } else {
document.addEventListener("onmousemove", moveHandler);
document.addEventListener("onmouseup", upHandler); }
stopProp(event); if(event.preventDefault){ event.preventDefault(); }else{
event.returnValue = false; }
function moveHandler(evt){ if(!evt) evt = window.event;
target.style.left = (evt.clientX- deltaX)+"px";
target.style.top = (evt.clientY- deltaY)+"px";
stopProp(evt); }
function upHandler(evt){ if(!evt) evt = window.event;
if (target.detachEvent) { target.detachEvent("onlosecapture",
upHandler); target.detachEvent("onmouseup", upHandler);
target.detachEvent("onmousemove", moveHandler);
target.releaseCapture();} else{
document.removeEventListener("onmouseup", upHandler);
document.removeEventListener("onmousemove", moveHandler); }
//阻止事件传播
stopProp(evt);
}
function stopProp(evt){ if(evt.stopPropagation){ evt.stopPropagation();
}else{ event.cancelBubble = true; } } }
html是onmousedown绑定方法,但是还是不能拖动,然后不能解绑事件监听器