我正在开发跨平台触摸事件. (刷卡等)他们在
Android设备上工作,但对于iPad,touchstart事件会发射两次.
@H_502_2@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:
Attach a handler to an event for the elements. The handler is executed at most once per element.