2015-10-27 68 views
2

我试图计算用户单击时记录的距离,并在用户再次单击时停止记录。我怎样才能做到这一点?由于我对鼠标事件不是很熟悉,我尝试过使用点击事件,但每次点击我都完全停止该功能。我有下面的代码。JS计算鼠标点击距离的距离

var xTravelled = 0, yTravelled = 0, prevX, prevY, count = 0, select = false; 
$(document).on({ 
    click : function(e) { 
     select = true; 
    }, 
    mousemove : function(e) { 
     if (select) { 
      prevY && (yTravelled += Math.abs(e.pageY - prevY)); 
      prevX && (xTravelled += Math.abs(e.pageX - prevX)); 

      prevX = e.pageX; 
      prevY = e.pageY; 

      $('#result').text(yTravelled + xTravelled); 
     } 
    } 
}); 
+0

是在第一行的'var'一个错字? –

+0

这是!对于那个很抱歉! – user1610834

+0

您可能想要使用[pythagoras](https://en.wikipedia.org/wiki/Pythagorean_theorem)计算距离,而不是仅添加x和y距离。 – Anders

回答

2

只要改变你的

click : function(e) { 
     select = (select==false)?true:false; 

    }, 

这里fiddle

+3

'select =!select' – Jivings

+0

谢谢!这工作! – user1610834