Javascript 取消鼠标上的功能?
我想知道如何在鼠标启动事件时取消/停止功能 我基本上有一个onmousedown和一个mousemove,这让我找到了一种方法,用鼠标计算出偏移量,但是如果我用鼠标移动,它仍然跟着鼠标 我使用:Javascript 取消鼠标上的功能?,javascript,Javascript,我想知道如何在鼠标启动事件时取消/停止功能 我基本上有一个onmousedown和一个mousemove,这让我找到了一种方法,用鼠标计算出偏移量,但是如果我用鼠标移动,它仍然跟着鼠标 我使用: function mousePos(e){ //gets the mouse position on click "start position" mousex = e.pageX; mousey = e.pageY; canvas.addEventListener("mousemov
function mousePos(e){ //gets the mouse position on click "start position"
mousex = e.pageX;
mousey = e.pageY;
canvas.addEventListener("mousemove", movePos, false);
}
function movePos(e){ // works out how far the mouse has moved from start position
offset_x = mousex - e.pageX;
offset_y = mousey - e.pageY;
}
//this is in my init function for body onload
canvas.addEventListener("mousedown", mousePos, false);
我的问题是,我需要它停止运行,一旦按钮不再按下 为mouseup添加事件监听器,然后删除mousemove的事件监听器 鼠标:
canvas.addEventListener('mouseup',onMouseUp,false);
然后在onMouseUp中删除:
function onMouseUp(e) {
canvas.removeEventListener('mousemove',movePos,false)
}
添加一个
mouseup
侦听器:
canvas.addEventListener('mouseup', mouseFin, false);
function mouseFin(e) {
canvas.removeEventListener('mousemove', movePos, false)
}
然后在mouseup
侦听器中,删除mousemove
侦听器:
canvas.addEventListener('mouseup', mouseFin, false);
function mouseFin(e) {
canvas.removeEventListener('mousemove', movePos, false)
}
演示:如何在mouseup上删除mousemove?我是否使用clear(mousemove)?@Dave您不删除处理程序。当鼠标按下时,将共享变量设置为true;当鼠标向上时,将其设置为false;如果该变量为true,则仅运行移动处理程序中的代码。但是使用标志会使程序始终调用侦听器并检查标志……嗯,我的偏移量更改的性能目前正在造成严重的延迟。