Javascript Jquery MouseMove无限循环

Javascript Jquery MouseMove无限循环,javascript,jquery,mousemove,mousedown,mouseup,Javascript,Jquery,Mousemove,Mousedown,Mouseup,我尝试在单击鼠标按钮时处理鼠标移动。但当释放鼠标按钮时,鼠标移动事件仍然有效。问题在哪里?如何解决问题 例如: clicked=false; var counter =0; $(document).mousedown(function(){ clicked=true; $(".clicked").text(clicked); if(clicked){ $(document).mousemove(function(){ $(".mm").append(++count

我尝试在单击鼠标按钮时处理鼠标移动。但当释放鼠标按钮时,鼠标移动事件仍然有效。问题在哪里?如何解决问题

例如:

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>");
})
clicked=false;
var计数器=0;
$(文档).mousedown(函数(){
单击=真;
$(“.clicked”).text(单击);
如果(单击){
$(文档).mousemove(函数(){
$(“.mm”)。追加(++计数器+”+“+单击+”
”; }); } }); $(文档).mouseup(函数(){ 单击=假; $(“.clicked”).text(单击); $(“.mm”).html(“鼠标点击:“+点击+”
”; })
JSFidle:


即使clicked为false,mousemove事件也会起作用。

您可以检查单击的布尔值是否为true,如果不是,则执行操作 或 您可以在
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计数器=0;
$(文档).mousedown(函数(){
单击=真;
$(“.clicked”).text(单击);
如果(单击){
$(文档).mousemove(函数(){
$(“.mm”)。追加(++计数器+”+“+单击+”
”; }); } }); $(文档).mouseup(函数(){ 单击=假; $(“.clicked”).text(单击); $(“.mm”).html(“鼠标点击:“+点击+”
”; $(文档).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>");
})
clicked=false;
var计数器=0;
$(文档).mousedown(函数(){
单击=真;
$(“.clicked”).text(单击);
如果(单击){
$(“.mm”)。追加(++计数器+”+“+单击+”
”; } }); $(文档).mouseup(函数(){ 单击=假; $(“.clicked”).text(单击); $(“.mm”).html(“鼠标点击:“+点击+”
”; })

事件的解除绑定在这里也很重要,比如$(document)。解除绑定('mousemove')。mousemove(///