jQuery的生活()移除iPhone触摸事件属性?
题
我绑定在我的的PhoneGap 的应用链接的现场活动。该事件会触发成功(由alert()
ing确认),但似乎任何触摸数据没有连接到事件对象像它应该是。这种情况发生在所有触摸事件 - touchstart
,touchmove
,和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
不隶属于 StackOverflow