Comment obtenir jQueryUI dragdrop travailler avec des appareils tactiles

C'est une situation où j'espère que quelqu'un répondra pour me dire que je suis un idiot. Mais je continue à être étonné que jQueryUI dragdrop ne fonctionne pas avec des appareils tactiles. Je ne les ai pas tous testés, mais j'ai essayé iphoneipadandroid 2, 3&4 au cours de l'année dernière et rien. Je viens d'essayer la dernière version sur un nouvel Android. Toujours rien. Ne me croyez pas, il suffit de visiter la page de démonstration sur un appareil mobile et d'essayer d'utiliser les exemples de dragdrop. Rien.

est - il un problème technique ou incompatibilité de base en jeu ici? Un correctif si facile que sa ne vaut pas l'écriture? Est-ce que jQuery devs n'utilise pas d'appareils mobiles? J'ai vu des" correctifs "posté ici et là autour du débordement de pile mais ils sont tous des" hacks " et tous ceux que j'ai essayé ne fonctionnent pas.

je suis perplexe. Quelqu'un peut jeter quelque lumière sur cette question?

29
demandé sur Kara 2012-12-18 23:50:47

3 réponses

si vous voulez que votre code D'interface jQuery actuel fonctionne avec les événements touch, vous pouvez utiliser le jQuery UI Touch Punch Monkey patch.

Le seul "problème technique ou de base incompatibilité", c'est que jQuery UI (1.x) n'écoute que les évènements de souris, pas les évènements de contact (Voir la réponse de @ScottGonzales pour la raison historique). jQuery touch punch, ci-dessus, fait ce changement. Vous pouvez même essayer quelques exemples de jQuery UI sur cette page, et ils travaillent. En général, L'Utilisation du poinçon Tactile est la solution actuellement acceptée.

61
répondu forivall 2017-05-23 12:10:30

il y a une longue histoire derrière la raison pour laquelle jQuery UI ne supporte pas les appareils tactiles, mais cela se résume au fait que L'événement tactile était une implémentation non standard de WebKit. À l'époque, l'avenir semblait morne. Apple détenait des brevets que personne ne voulait s'approcher; en conséquence, Mozilla a mis en place son propre système d'événements tactiles avec des flux qui n'ont jamais capté. Il n'était pas clair ce que Microsoft et Opera feraient. Paul Bakaus (le créateur de jQuery UI) voulait atterrir iPhone support il y a 4 ans . Je voulais attendre une norme officielle.

le temps a passé, Mozilla a abandonné leurs événements tactiles et Microsoft a mis en œuvre leur propre système d'événements pointeur. Le W3C a formé un groupe de travail pour normaliser les événements tactiles et étudier les brevets Apple. Le groupe de travail Touch Events a publié une recommandation et a été dissous. Microsoft a finalement soumis une proposition pour normaliser les événements de pointeur et il y a maintenant un W3C événements de pointeur Groupe De Travail.

nous travaillons actuellement sur une réécriture dispositif-agnostique de toutes les interactions jQuery UI qui feront partie de jQuery UI 2.0. En attendant, vous pouvez utiliser jQuery UI Touch Punch .

plus tôt cette année, j'ai écrit sur une partie de l'histoire autour des événements Touch et pourquoi les événements Pointer fournissent un meilleur avenir. Vous pouvez le lire sur le jQuery blog .

26
répondu Scott González 2012-12-18 20:11:15

Check out jQTouch

c'est un plugin jQuery qui aide à combler les écarts d'événements entre le bureau et les appareils tactiles.

0
répondu Jason Whitted 2012-12-18 19:59:34