使用此代码:
<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
代替