我想知道如何在鼠标注册事件中取消/停止某项功能?
我基本上有一个onmousedown后跟一个鼠标移动这让我找到一种方法来计算鼠标的偏移量,但如果我鼠标 - 它仍然继续跟随鼠标!
我用:
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);
我遇到的问题是,一旦不再按下按钮,我就需要它停止运行。
答案 0 :(得分:2)
为mouseup添加一个事件监听器,并删除mousemove的事件监听器。
鼠标松开:
canvas.addEventListener('mouseup',onMouseUp,false);
然后在onMouseUp中删除:
function onMouseUp(e) {
canvas.removeEventListener('mousemove',movePos,false)
}
答案 1 :(得分:1)
添加mouseup
侦听器:
canvas.addEventListener('mouseup', mouseFin, false);
然后在mouseup
侦听器中,删除mousemove
侦听器:
function mouseFin(e) {
canvas.removeEventListener('mousemove', movePos, false)
}