私のiPhoneでtouchstartとtouchendイベントで遊んでいます。 divを持つサンプルページを作成しました。そのページに触れてページをスクロールすると、開始位置と終了位置のy座標が返されるはずです。jQuery(スワイプとタッチ)pageXとpageYは0を返し続けます
jQueryの:私は私のiPhone上でそのページをロードすると
var touchStartPos;
$('.theDiv')
.bind('touchstart', function(e){
touchStartPos = e.pageY;
})
.bind('touchend', function(e){
alert(touchStartPos + ' | ' + e.pageY)
})
、しかし、警告はゼロとして両方の値を報告し続けます。私の持つものに誰かが間違っていると思う?それが出て立ち往生からhttps://github.com/jquery/jquery-mobile/issues/734
コメントそれを::
はUPDATE:私はjQueryのモバイルプロジェクトにコードのこのビットに出くわし
は
// (in iOS event.pageX and event.pageY are always 0)
それは理由を言っていません。その場合ですが、少なくとも私は同じことを見ている他の人を見つけました。そのページのサンプルコードを調べて、解決策があるかどうかを確認します。
UPDATE II:
さて、上記のリンクのサンプルコードを見た後、それが実際の値を返します。次のようになります。
e.originalEvent.touches[0].pageY
キャッチがあり、私は今、それはありません実現かなり必要です。これは、ブラウザウィンドウではなく、HTMLドキュメントに関連するイベントにイベントをアタッチしたオブジェクト内で触った領域のYオフセットを返します。
私の目標は、タッチがどこで始まったのか、どこで終わったのかを把握し、値を比較することです。彼らがかなり違っている場合は、タッチではなくスワイプが実行されたとお考えください。
UPDATE III:
私はまた、これらの例への参照を見つけることだ:
e.originalEvent.touches[0].pageX
event.targetTouches[0].pageY
私はそれらのいずれかの仕事を得るように見えることはできませんが。どちらも未定義のエラーを返します。
のUPDATE IV:
一つの解決策は、ドキュメント自体に)(オフセットを追跡することであるように見えます。私は文書にtouchendイベントを適用してからオフセットをチェックできます。
この問題は、私のtouchendイベントが最初にページの要素でトリガーされ、次にそれがドキュメント上で発火する(バブリング)ことが問題です。だから私は実際にそれがタッチまたはスワイプであるかどうかを判断することができません。なぜなら、私はオブジェクトのイベントに何をすべきかを理解する必要があります。それでも...
奇妙は、携帯電話についてknwoが、私はこれがスタンパのこのくらいになるだろうされませんでした期待していたクリックhttp://jsfiddle.net/nH2PU/ – Sinetheta
と正常に動作しません。 ;) –
Android(2.2.2) – NoBugs