2012-03-20 20 views
7

Çapraz platform dokunma olayları üzerinde çalışıyorum. (swiping etc) Android cihazlarda çalışıyorlar, ancak iPad için touchstart olayı iki kez ateş ediyor. iPad touchstart iki kez ateş ediyor

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; 

}; 

Bu fonksiyon

iPad'de iki kez ateş, ancak Android'de düzgün çalışmıyor.

Bunu bir kez daha dokunma hareketine, sonra dokunma hareketine, sonra dokunduğuna ve nihayetinde bir nedenle başka bir dokunuşla başladığını eklemeliyim.

İşte JSFiddle üzerindedir: http://jsfiddle.net/6Lb3Z/1

Ekran Görüntüsü: http://i.imgur.com/GS8uI.png

+1

Ben sadece iPad üzerinde test edilmiş ve bir kez ateşler - http://jsfiddle.net/Kai/N7NA5/ – Kai

+0

Tamam teşekkürler bunun için sorun başka bir yerde olmalı. İşte JSFiddle üzerinde: http://jsfiddle.net/6Lb3Z/ – Jasard

+0

jsfiddle üzerinde düzgün çalışması için keman güncellendi; Hala tek bir touchstart çağrısı görüyorum: http://www.jsfiddle.net/6Lb3Z/1/ iOS 5.1 ile bir iPad2 kullanıyorum. Screenshot http://i.imgur.com/Oz5z4.png – Kai

cevap

0

o zaman .one yöntemi kullanabilirsiniz, jQuery veya Zepto gibi bir kütüphane kullanıyorsanız. jQuery API documentation itibaren

:

elemanları bir etkinliğe bir işleyici takın. İşleyici, eleman başına en fazla bir defa çalıştırılır.

+3

Bu bir kez değil - sadece bir kez dokunuş başına değil mi? –