我正在开发跨平台触摸事件. (刷卡等)他们在
Android设备上工作,但对于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:
Attach a handler to an event for the elements. The handler is executed at most once per element.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。