iPad touchstart发射两次
问题描述:
我正在开发跨平台触摸事件。 (刷卡等)他们在Android设备上工作,但对于iPad而言,touchstart事件发射两次。iPad touchstart发射两次
this.element.addEventListener('touchstart', mousedown, false);
var mousedown = function(event) {
// Finger Press
event.preventDefault();
_this.inGesture = true;
_this._originalX = (event.touches) ? event.touches[0].pageX : event.pageX;
_this._originalY = (event.touches) ? event.touches[0].pageY : event.pageY;
};
此功能在iPad上触发两次,但在Android上正常工作。
我应该补充说,它触发touchstart,然后touchmove,然后touchend,最后它由于某种原因做了另一个touchstart。
这是对的jsfiddle:http://jsfiddle.net/6Lb3Z/1
答
如果您正在使用像jQuery或的Zepto一个图书馆,那么你可以使用.one
方法。
从jQuery的的API documentation:
附加的处理程序,为元素的事件。该处理程序每个元素最多执行一次 。
+3
是不是曾经有过 - 而不是每次触摸一次? – 2012-07-31 13:12:38
我只是测试了我的iPad,它触发一次 - http://jsfiddle.net/Kai/N7NA5/ – Kai 2012-03-20 17:20:02
好感谢为,这个问题必须在别处。这里是JSFiddle:http://jsfiddle.net/6Lb3Z/ – Jasard 2012-03-20 17:32:44
我更新了小提琴在jsfiddle上正确运行;我仍然看到只有一个touchstart调用:http://www.jsfiddle.net/6Lb3Z/1/我使用iOS5的iPad2。截图http://i.imgur.com/Oz5z4.png – Kai 2012-03-21 00:40:15