iPad touchstart дважды стреляет - PullRequest
7 голосов
/ 20 марта 2012

Я работаю над кроссплатформенными сенсорными событиями.(перелистывание и т. д.) Они работают на устройствах 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

Снимок экрана: http://i.imgur.com/GS8uI.png

1 Ответ

0 голосов
/ 31 июля 2012

Если вы используете библиотеку, такую ​​как jQuery или Zepto, то вы можете использовать метод .one.

Из документации API jQuery:

Присоединить обработчик к событию для элементов. Обработчик выполнен не более одного раза на элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...