鼠标移动事件,第二次无效,求解

这段代码第一次执行的时候正常,但第二次就无效,求解

var cir = document.getElementsByClassName("circle")[0];
cir.onmousedown = function( event ){
    var disX = event.clientX - cir.offsetLeft;
    var disY = event.clientY - cir.offsetTop;
    document.onmousemove = function( event ){
            cir.style.left = ( event.clientX - disX ) + "px";
            cir.style.top = ( event.clientY - disY ) + "px";
            return false;
        }
    }
    document.onmouseup = function(){
        cir.onmousedown = null;
        document.onmousemove = null;
    }
阅读 3.8k
4 个回答

因为你鼠标松开事件设置了cir.onmousedown = null;document.onmousemove = null;

document.onmouseup = function(){
    cir.onmousedown = null;
    document.onmousemove = null;
}

你都取消了还怎么可能有效呢

新手上路,请多包涵

加上document.onmouseup = null;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题