单击鼠标按钮时,我尝试处理鼠标移动。但是当释放鼠标按钮时,鼠标移动事件仍然有效。问题在哪里以及如何解决问题?
示例:
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/
即使clicked为false,也会发生mousemove事件。
答案 0 :(得分:0)
如果不执行任何操作,您可以检查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");
})
答案 1 :(得分:0)
请尝试:
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>");
})