[英]How to stop a "mousemove" event after a mouse up?
我想在mousedown
事件和mousemove
上創建滑動幻燈片,但在mouseup
上我想停止mousemove
事件。
slide.addEventListener("mousedown", e => {
console.log(e.clientX);
});
slide.addEventListener("mousemove", function move(e) {
// do Somthing
});
slide.addEventListener("mouseup", function stop(e) {
// stop the mousemove event
});
在需要時嘗試添加和刪除偵聽器:
function move(e) {
// do Somthing
}
slide.addEventListener("mousedown", e => {
console.log(e.clientX);
slide.addEventListener("mousemove", move);
});
slide.addEventListener("mouseup", function stop(e) {
slide.removeEventListener("mousemove", move);
});
停止 mousemove 很簡單,只需調用slide.removeEventListener("mousemove", "function you're calling under mousemove");
只需將它調用到你想要停止它的方法中
在公共范圍內使用標志。 在mousedown中將其設置為true
,在mouseup中將其設置為false
。 在mousemove中查看
var pressing = false;
slide.addEventListener("mousedown", e => {
pressing = true;
});
slide.addEventListener("mousemove", function move(e) {
if (pressing) {
// do something only if mouse button is being pressed
}
});
slide.addEventListener("mouseup", function stop(e) {
pressing = false;
});
為什么不直接刪除事件偵聽器?
slide.addEventListener("mouseup", function stop(e) {
slide.removeEventListener("mousemove", function move(e) {});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.