42

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

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

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

4

4 に答える 4

76

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

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

于 2012-12-18T20:06:00.130 に答える
34

jQuery UI がタッチ デバイスをサポートしない理由には長い歴史がありますが、それは突き詰めると、Touch Event が非標準の WebKit 固有の実装であったという事実に帰着します。当時、将来は悲惨に見えました。Apple は誰も近づきたくない特許を持っていた。その結果、Mozilla はストリームで独自のタッチ イベント システムを実装しましたが、これは普及しませんでした。Microsoft と Opera が何をするかは明らかではありませんでした。Paul Bakaus (jQuery UI の作成者)は、4 年前に iPhone のサポートを開始したいと考えていました。正式な規格を待ちたかった。

時が経ち、Mozilla はタッチ イベントを放棄し、Microsoft は独自のポインター イベント システムを実装しました。W3C は、Touch Events を標準化し、Apple の特許を調査するワーキング グループを結成しました。タッチ イベント ワーキング グループは勧告を発表し、解散しました。Microsoft は最終的に Pointer Events を標準化する提案を提出し、現在 W3C Pointer Events Working Group があります。

現在、jQuery UI 2.0 の一部となるすべての jQuery UI インタラクションのデバイスに依存しない書き直しに取り組んでいます。それまではjQuery UI Touch Punchを使用できます。

今年の初めに、Touch Events の歴史と Pointer Events がより良い未来を提供する理由について書きました。これについては、 jQuery ブログで読むことができます。

于 2012-12-18T20:11:15.870 に答える
0

jQTouchをチェックしてください

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

于 2012-12-18T19:59:34.370 に答える