wake-up-neo.com

So bringen Sie jQueryUI zum Drag & Drop mit Touch-Geräten

Dies ist eine Situation, in der hoffentlich jemand antwortet, um mir zu sagen, dass ich ein Idiot bin. Ich bin jedoch weiterhin erstaunt, dass jQueryUI Drag & Drop mit Touch-Geräten nicht funktioniert. Ich habe sie nicht alle getestet, aber ich habe im letzten Jahr iphone\ipad\Android 2, 3 & 4 ausprobiert und nichts. Habe gerade die neueste Version auf einem neuen Android ausprobiert. Immer noch nichts. Glauben Sie mir nicht, besuchen Sie einfach die Demoseite auf einem mobilen Gerät und versuchen Sie, die Drag & Drop-Beispiele zu verwenden. Nichts.

Gibt es hier ein technisches Problem oder eine Kerninkompatibilität? Eine Lösung, die so einfach ist, dass es sich nicht lohnt, darüber zu schreiben? Verwenden jQuery-Entwickler keine Mobilgeräte? Ich habe "Fixes" gesehen, die hier und da um Stack Overflow herum gepostet wurden, aber es sind alles "Hacks" und alle, die ich ausprobiert habe, funktionieren nicht.

Ich bin ratlos. Kann jemand etwas Licht in dieses Problem bringen?

35
Brian

Wenn Sie nur möchten, dass Ihr aktueller jQuery-UI-Code mit Berührungsereignissen funktioniert, können Sie den Affen-Patch jQuery UI Touch Punch verwenden.

Das einzige "technische Problem oder die Kerninkompatibilität" besteht darin, dass die jQuery-Benutzeroberfläche (1.x) nur Mausereignisse und keine Berührungsereignisse abhört (siehe die Antwort von @ ScottGonzales für den historischen Grund). jQuery Touch Punch oben bewirkt diese Änderung. Sie können sogar einige Beispiele für die jQuery-Benutzeroberfläche auf dieser Seite ausprobieren, und sie funktionieren. Im Allgemeinen ist die Verwendung von Touch Punch die derzeit akzeptierte Lösung.

69
forivall

Es gibt eine lange Geschichte, warum die jQuery-Benutzeroberfläche keine Touch-Geräte unterstützt, aber es läuft darauf hinaus, dass Touch Event keine standardmäßige WebKit-spezifische Implementierung war. Zu dieser Zeit sah die Zukunft trostlos aus. Apple hielt Patente, denen niemand näher kommen wollte; Mozilla implementierte daher ein eigenes Touch-Event-System mit Streams, die sich nie durchsetzten. Es war nicht klar, was Microsoft und Opera würde tun. Paul Bakaus (der Schöpfer von jQuery UI) wollte vor 4 Jahren den iPhone-Support bekommen . Ich wollte auf einen offiziellen Standard warten.

Mit der Zeit gab Mozilla seine Berührungsereignisse auf und Microsoft implementierte ein eigenes Zeigerereignissystem. Das W3C bildete eine Arbeitsgruppe zur Standardisierung von Berührungsereignissen und zur Untersuchung der Apple) - Patente. Die Arbeitsgruppe für Berührungsereignisse hat eine Empfehlung veröffentlicht und aufgelöst. Microsoft hat schließlich einen Vorschlag zur Standardisierung von Zeigerereignissen unterbreitet eine W3C Pointer Events Arbeitsgruppe.

Wir arbeiten derzeit an einem geräteunabhängigen Umschreiben aller Interaktionen mit der jQuery-Benutzeroberfläche, die Teil der jQuery-Benutzeroberfläche 2.0 sein werden. Bis dahin können Sie jQuery UI Touch Punch verwenden.

Anfang dieses Jahres schrieb ich über einen Teil der Geschichte rund um Touch Events und warum Pointer Events eine bessere Zukunft bieten. Sie können darüber im jQuery-Blog lesen.

31
Scott González

Check out jQTouch

Es handelt sich um ein jQuery-Plugin, mit dem Sie die Ereignislücken zwischen Desktop- und Touch-Geräten schließen können.

0
Jason Whitted