2012-03-20 9 views
7

私はクロスプラットフォームのタッチイベントに取り組んでいます。 (スワイプなど)Androidデバイスで動作しますが、iPadではタッチスタートイベントが2回発生します。iPad touchstartを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では2回発射されていますが、Androidでは正常に機能しています。

これは、タッチスタートを発生させ、次にタッチしてからtouchendし、何らかの理由で別のタッチスタートを行うことを追加する必要があります。

ここでは、JSFiddleである:http://jsfiddle.net/6Lb3Z/1

スクリーンショット:http://i.imgur.com/GS8uI.png

+1

私はちょうど私のiPadでテストし、それが一度発射 - http://jsfiddle.net/Kai/N7NA5/ – Kai

+0

わかりましたおかげで、そのために、問題がどこか別の場所でなければなりません。ここではJSFiddleにあります:http://jsfiddle.net/6Lb3Z/ – Jasard

+0

jsfiddleで正しく動作するようにフィディルドを更新しました。私はまだtouchstartコールが1つしか見えません。http://www.jsfiddle.net/6Lb3Z/1/ iOS 5.1でiPad2を使用しています。スクリーンショットhttp://i.imgur.com/Oz5z4.png – Kai

答えて

0

あなたは、あなたが.oneメソッドを使用することができ、jQueryのか、Zeptoのようなライブラリを使用している場合。 jQueryののAPI documentationから

は、要素のためのイベントにハンドラを接続します。ハンドラは、要素ごとに最大で1回、 で実行されます。

+3

それはこれまで一度ではなく、1回のタッチで1回だけではありませんか? –

関連する問題