是否有一个等同于“touchstart”事件的e.PageX位置,因为有点击事件?

我试图用jQuery的touchstart事件来获得X位置,与live函数一起使用?

$('#box').live('touchstart', function(e) { var xPos = e.PageX; } ); 

现在,这确实与'点击'作为事件。 如何在地球上(不使用alpha的 jQuery Mobile)我得到一个触摸事件?

有任何想法吗?

谢谢你的帮助。

有点晚了,但你需要访问原来的事件,而不是jQuery的按摩。 而且,由于这些是多点触摸事件,所以需要做其他的改变:

 $('#box').live('touchstart', function(e) { var xPos = e.originalEvent.touches[0].pageX; }); 

如果你想要其他手指,你可以在触摸列表的其他索引中find它们。

更新的JQUERY:

 $(document).on('touchstart', '#box', function(e) { var xPos = e.originalEvent.touches[0].pageX; }); 

我为基于JQuery的项目使用这个简单的函数

  var pointerEventToXY = function(e){ var out = {x:0, y:0}; if(e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel'){ var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; out.x = touch.pageX; out.y = touch.pageY; } else if (e.type == 'mousedown' || e.type == 'mouseup' || e.type == 'mousemove' || e.type == 'mouseover'|| e.type=='mouseout' || e.type=='mouseenter' || e.type=='mouseleave') { out.x = e.pageX; out.y = e.pageY; } return out; }; 

例:

 $('a').on('mousedown touchstart', function(e){ console.log(pointerEventToXY(e)); // will return obj ..kind of {x:20,y:40} }) 

希望这会对你有用;)

如果您不使用jQuery …您需要访问事件的TouchList来获取具有pageX/Y clientX/Y等的Touch对象

以下是相关文档的链接:

我在我的情况下使用e.targetTouches[0].pageX

我尝试了一些其他的答案,但originalEvent也是未定义的。 经过检查,find了一个TouchList分类的属性(如另一张海报所build议的),并设法通过这种方式到达pageX / Y:

 var x = e.changedTouches[0].pageX; 

检查Touch类上的 Safari 开发人员参考 。

据此,pageX / Y应该可用 – 也许你应该检查拼写? 确保它是pageX而不是PageX