我绑定在我的的PhoneGap 的应用链接的现场活动。该事件会触发成功(由alert()ing确认),但似乎任何触摸数据没有连接到事件对象像它应该是。这种情况发生在所有触摸事件 - touchstarttouchmove,和touchend

$('a').live('touchend', function(event) {
  event.preventDefault();
  alert(event.touches.length); // event.touches should be populated!
});

任何想法? am我SOL与jQuery.live()?

有帮助吗?

解决方案

在触摸事件目前尚未被活动/活支撑。

从文档:

  

可能的事件的值:点击,   DBLCLICK,鼠标按下,鼠标松开,   鼠标移动,鼠标悬停,鼠标移开,   KEYDOWN,按键,KEYUP

     

目前不支持:模糊,聚焦,   的mouseenter,鼠标离开,变更,提交

您可能要考虑尝试使用单击是否会满足您的需求,或者您可以切换到使用的的liveQuery ,这可能会支持它。 (的liveQuery是什么活最初基于,我不知道为什么它不支持所有的相同事件)

其他提示

实际上,可以使用.live方法。你不必因为event.touches财产的jQuery如何处理内部事件。为了“修复”事件,jQuery的克隆事件。在超过出于性能的考虑属性的数量有限这样做,只是拷贝。然而,仍然可以通过event.originalEvent属性访问原始事件对象。

所以,你的示例代码将需要如下所示:

$('a').live('touchend', function(event) {
  event.preventDefault();
  console.log(event.originalEvent.touches.length);
});

下面是被复制的属性: HTTP:/ /github.com/jquery/jquery/blob/master/src/event.js#L411

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top