使用此代码:

<h2 id="status">
0, 0
</h2>

<script type="text/javascript">
   $('html').mousemove(function(e){
      $('#status').html(e.pageX +', '+ e.pageY);
   });
</script>

在像firefox这样的Windows浏览器中,当我移动鼠标时可以看到鼠标的位置,但是当我在android(2.1)浏览器中运行此页面时,当我触摸屏幕时无法获取连续事件,当触发该事件时会触发该事件我点击屏幕,为什么?以及如何在触摸屏幕时获取连续的mousemove事件?

最佳答案

改用touchmove事件(可在Froyo的Android浏览器上使用),尽管存在一些问题-浏览器仅在释放触摸时更新div,但是每次触摸 Action 都会触发该事件。可以通过将代码更改为此来证明这一点:



这是由于bug in the Android browser造成的-您需要调用event.preventDefault()才能按预期进行此工作:



官方的错误详细信息:available here

要检测当前的X和Y位置,您应该使用event.touches对象:

$(window).bind('touchmove', function(jQueryEvent) {
   jQueryEvent.preventDefault();
   var event = window.event;
   $('#status').html('x='+event.touches[0].pageX + '  y= ' + event.touches[0].pageY);
});

jQuery创建事件对象的自己的“版本”,该对象不具有本地浏览器属性(例如.touches),因此您需要使用window.event代替

07-24 09:46
查看更多