web-dev-qa-db-ja.com

タッチデバイスでjQueryUIのドラッグアンドドロップを機能させる方法

これは、誰かが私にバカだと言って返事をしたい状況の一つです。ただし、タッチデバイスではjQueryUIのドラッグアンドドロップが機能しないことに驚かされます。すべてをテストしたわけではありませんが、昨年はiphone\ipad\Android 2、3&4を試しましたが、何もしていません。新しいAndroidで最新バージョンを試しました。まだ何もありません。私を信じないでください。モバイルデバイスのデモページにアクセスして、ドラッグアンドドロップの例を使用してみてください。なし。

ここで技術的な問題やコアの非互換性がありますか?簡単に修正できるので、書く価値はありませんか? jQuery開発者はモバイルデバイスを使用しませんか? Stack Overflowのあちこちに「修正」が投稿されているのを見てきましたが、それらはすべて「ハック」であり、試したものはすべて機能しません。

私は当惑しています。誰かがこの問題に光を当てることはできますか?

35
Brian

現在のjQuery UIコードをタッチイベントで機能させたい場合は、 jQuery UI Touch Punch モンキーパッチを使用できます。

唯一の「技術的な問題またはコアの非互換性」は、jQuery UI (1.x) がタッチイベントではなく、マウスイベントのみをリッスンすることです(歴史的な理由については@ScottGonzalesの応答を参照)。上記のjQueryタッチパンチがその変更を行います。そのページでjQuery UIの例のいくつかを試すこともできますが、それらは動作します。一般的に、タッチパンチの使用は現在受け入れられているソリューションです。

69
forivall

JQuery UIがタッチデバイスをサポートしない理由には長い歴史がありますが、結局のところ、タッチイベントは非標準のWebKit固有の実装であるという事実に帰着します。当時、未来は憂鬱に見えた。 Apple誰も近くに行きたくないという特許を保持しているため、Mozillaは独自のタッチイベントシステムを実装し、決してキャッチされなかったストリームを使用しました。MicrosoftとOperaはそうでしょう。Paul Bakaus(jQuery UIの作成者) 4年前にiPhoneのサポートを獲得したい 。公式の標準を待ちたいと思いました。

時間が経つと、Mozillaはタッチイベントを放棄し、Microsoftは独自のポインターイベントシステムを実装しました。 W3Cは、タッチイベントを標準化し、Apple特許を調査するためのワーキンググループを形成しました。タッチイベントワーキンググループは、推奨事項を公開し、解散しました。 W3Cポインターイベントワーキンググループ。

現在、jQuery UI 2.0の一部となるすべてのjQuery UIインタラクションの device-agnostic rewrite に取り組んでいます。それまでは、 jQuery UI Touch Punch を使用できます。

今年の初めに、タッチイベントに関する歴史の一部と、ポインターイベントがより良い未来を提供する理由について書きました。 jQuery blog でそれについて読むことができます。

31
Scott González

チェックアウト jQTouch

これは、デスクトップデバイスとタッチデバイス間のイベントギャップを埋めるjQueryプラグインです。

0
Jason Whitted