25

Dies ist eine Situation, in der ich hoffe, jemand antwortet mir zu sagen, ich bin ein Idiot. Aber ich bin weiterhin erstaunt, dass jQueryUI Drag & Drop mit Touch-Geräten nicht funktioniert. Ich habe sie nicht alle getestet, aber ich habe versucht, iphone \ ipad \ android 2, 3 & 4 über das letzte Jahr und nichts. Habe gerade die neueste Version auf einem neuen Android ausprobiert. Immer noch nichts. Glauben Sie mir nicht, besuchen Sie einfach die Demo-Seite auf einem mobilen Gerät und versuchen Sie, die Drag & Drop-Beispiele zu verwenden. Nichts.Wie bekomme ich jQueryUI Drag & Drop mit Touch-Geräten

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 mobilen Geräte? Ich habe "Fixes" gesehen, die hier und da um Stack Overflow gepostet wurden, aber sie sind alle "Hacks" und alle, die ich ausprobiert habe, funktionieren nicht.

Ich bin perplex. Kann jemand dieses Thema beleuchten?

+0

Ich denke, es ist mehr ein Problem der Zielgruppe. jQuery UI wurde ursprünglich nicht für mobile Geräte geschrieben. Es wird nicht einmal gut mit jQuery Mobile spielen. Einige Teile davon funktionieren möglicherweise noch gut in mobilen Geräten, aber alles, was mit dem Ziehen zu tun hat, wird fehlschlagen. –

+0

möglich Duplikat von [jQuery UI Slider Touch & Drag/Drop-Unterstützung auf mobilen Geräten] (http://stackoverflow.com/questions/13808663/jquery-ui-slider-touch-drop-drop-support-on-mobile-devices) – Seth

Antwort

57

Wenn Sie möchten, dass Ihr aktueller jQuery-UI-Code mit Touch-Ereignissen arbeitet, können Sie das jQuery UI Touch Punch Affe-Patch verwenden.

Das einzige "technische Problem oder Core-Inkompatibilität" ist, dass jQuery UI (1.x) nur Mausereignisse abhört, Ereignisse nicht berührt (siehe @ ScottGonzales Antwort aus dem historischen Grund). jQuery Touch Punch, oben, macht diese Änderung. Sie können sogar einige der jQuery UI-Beispiele auf dieser Seite ausprobieren, und sie funktionieren. Im Allgemeinen ist die Verwendung von Touch Punch die derzeit akzeptierte Lösung.

0

Check out jQTouch

Es ist ein jQuery-Plugin, das die Ereignis Lücken zwischen Desktop- und Touch-Geräte hilft überbrücken.

25

Es gibt eine lange Geschichte, warum jQuery UI keine Touch-Geräte unterstützt, aber es läuft darauf hinaus, dass Touch Event eine nicht standardmäßige WebKit-spezifische Implementierung war. Zu dieser Zeit schien die Zukunft trostlos. Apple hielt Patente, die niemand in die Nähe bringen wollte; Infolgedessen implementierte Mozilla ein eigenes Touch-Event-System mit Streams, die sich nie durchsetzten. Es war nicht klar, was Microsoft und Opera tun würden. Paul Bakaus (der Schöpfer von jQuery UI) wanted to land iPhone support 4 years ago. Ich wollte auf einen offiziellen Standard warten.

Die Zeit verging, Mozilla gab ihre Berührungsereignisse auf und Microsoft implementierte ein eigenes Zeigerereignissystem. Das W3C hat eine Arbeitsgruppe gebildet, um Touch Events zu standardisieren und die Apple-Patente zu untersuchen. Die Arbeitsgruppe Touch Events hat eine Empfehlung veröffentlicht und ist aufgelöst worden. Microsoft hat schließlich einen Vorschlag zur Standardisierung von Zeigerereignissen eingereicht, und es gibt jetzt eine W3C-Arbeitsgruppe Zeigerereignisse.

Wir arbeiten gerade an einer device-agnostic rewrite aller jQuery UI Interaktionen, die Teil von jQuery UI 2.0 sein werden. Bis dahin können Sie jQuery UI Touch Punch verwenden.

Anfang dieses Jahres schrieb ich über einige der Geschichte rund um Touch Events und warum Pointer Events eine bessere Zukunft bieten. Sie können darüber auf der jQuery blog lesen.

+8

Gibt es Updates zu diesem Problem? – Lombas