如何使用jquery-mobile获取tap事件的位置/坐标?

Jquery-mobile支持以下事件:

http://jquerymobile.com/demos/1.0a3/docs/api/events.html

如何在移动设备上获取点击事件(例如图像内)的位置?

$('#myimg').bind('tap', function(e){ var x = ???; var y = ???; alert([x, y]); }) 

你不会得到pageX和pageY的原因是你得到的touchcancel事件不包含任何坐标信息(毕竟它是非触摸的)。 这不是实际的点击或点击,它是一个没有移动(超过阈值)并且足够快的触摸事件。

当我为jQuery使用touchswipe插件时遇到了同样的事情,并且必须通过在touchstart事件上存储坐标并在取消事件上检索它来解决它以便能够提取坐标。

您需要将这些保存在start事件中(jquery mobile中的“vmousedown”?):

  event.touches[0].pageX event.touches[0].pageY 

此外,在移动设备上,您应该将坐标乘以window.devicePixelRatio以获得屏幕上的准确位置。

我不知道Jquery手机,但我只是尝试了我的iphone中的canvas演示页面…你只需点击并绘制圆圈就可以了。

我只是像上面的人说的那样使用e.pageX和e.pageY

 function getCursorPosition(e) { var x; var y; if (e.pageX != undefined && e.pageY != undefined) { x = e.pageX; y = e.pageY; } else { x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; } x -= Ccanvas.offsetLeft; y -= Ccanvas.offsetTop; var Point = { x: x, y: y }; return Point; }