[英]Jquery MouseMove infinity loop
單擊鼠標按鈕時,我嘗試處理鼠標移動。 但是當釋放鼠標按鈕時,鼠標移動事件仍然有效。 問題出在哪里,如何解決?
例:
clicked=false;
var counter =0;
$(document).mousedown(function(){
clicked=true;
$(".clicked").text(clicked);
if(clicked){
$(document).mousemove(function(){
$(".mm").append(++counter+" "+clicked+"<br>");
});
}
});
$(document).mouseup(function(){
clicked=false;
$(".clicked").text(clicked);
$(".mm").html("mouseup, clicked: "+clicked+"<br>");
})
JSFidle: https ://jsfiddle.net/r6hb3csp/1/
即使單擊為false,mousemove事件也有效。
您可以檢查單擊的BOOLEAN是否可以執行操作(如果不執行任何操作),或者可以在mouseup
后取消綁定事件,例如:
clicked=false;
var counter =0;
$(document).mousedown(function(){
clicked=true;
$(".clicked").text(clicked);
if(clicked){
$(document).mousemove(function(){
$(".mm").append(++counter+" "+clicked+"<br>");
});
}
});
$(document).mouseup(function(){
clicked=false;
$(".clicked").text(clicked);
$(".mm").html("mouseup, clicked: "+clicked+"<br>");
$(document).unbind("mousemove");
})
請嘗試以下方法:
clicked=false;
var counter =0;
$(document).mousedown(function(){
clicked=true;
$(".clicked").text(clicked);
if(clicked){
$(".mm").append(++counter+" "+clicked+"<br>");
}
});
$(document).mouseup(function(){
clicked=false;
$(".clicked").text(clicked);
$(".mm").html("mouseup, clicked: "+clicked+"<br>");
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.