Javascript Drag & Drop für Touch-Geräte
Ich bin auf der Suche nach einer drag & DROP-plugin, das funktioniert auf touch-Geräten.
Ich würde gerne eine ähnliche Funktionalität wie die jQuery UI plugin die es ermöglicht "abwerfbaren" Elemente.
Den jqtouch plugin unterstützt ziehen, aber nicht ablegen.
Hier ist drag & drop, die nur unterstützt iPhone/iPad.
Kann jemand mich in Richtung eine drag & drop-plugin, das funktioniert auf android/ios?
...Oder könnte es möglich sein, ein update der jqtouch plugin für droppability, es läuft bereits auf Andriod und IOS.
Dank!
InformationsquelleAutor der Frage joe | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Jquery UI für drag und drop mit einer zusätzlichen Bibliothek, übersetzt von Maus-Ereignissen in Berührung, die, was Sie brauchen, ist die Bibliothek, die ich empfehlen, ist https://github.com/furf/jquery-ui-touch-punchmit diesem Ihrem drag-and-drop von Jquery UI auf touch-Geräte
oder Sie können diesen code verwenden, die ich benutze, es konvertiert auch Maus-Ereignisse in Kontakt, und es funktioniert wie Magie.
Und in Ihrem Dokument.bereit, rufen Sie einfach die init () - Funktion
code, der sich aus Hier
InformationsquelleAutor der Antwort ryuutatsuo
Für jedermann, das schaut, um diese zu verwenden und halten Sie die "click" - Funktionalität (als John Landheer erwähnt in seinem Kommentar), können Sie es mit nur ein paar änderungen:
Fügen Sie ein paar globals:
Dann ändern Sie die switch-Anweisung aus den ursprünglichen:
Können Sie anpassen möchten 'clickms' zu Ihrem Geschmack. Im Grunde ist es nur gerade für ein 'touchstart', gefolgt schnell durch 'touchend' zu simulieren klicken.
InformationsquelleAutor der Antwort E.Z. Hart
Danke für die oben genannten codes! - Ich habe versucht, mehrere Optionen, und das war das ticket. Ich hatte Probleme, die preventDefault verhindert das scrollen auf dem ipad - jetzt bin ich die Prüfung für die ziehbaren Elemente und es funktioniert Super so weit.
InformationsquelleAutor der Antwort gregpress
Hatte ich die gleiche Lösung wie gregpress Antwortaber meine draggable items verwendet eine Klasse statt einer id. Es scheint zu funktionieren.
InformationsquelleAutor der Antwort Eric
Alter thread ich weiß.......
Problem mit der Antwort von @ryuutatsuo ist, dass es blockiert auch keine Eingabe-oder andere element, das reagieren auf die 'Klicks' (z.B. Eingänge), so schrieb ich diese Lösung. Diese Lösung machte es möglich, alle vorhandenen drag und drop-Bibliothek, basiert auf mousedown, mousemove und mouseup-Ereignisse auf jedem touch-Gerät (oder cumputer). Dies ist auch eine cross-browser-Lösung.
Habe ich getestet auf mehreren Geräten und es funktioniert schnell (in Kombination mit der drag-und-drop-Funktion von ThreeDubMedia (siehe auch http://threedubmedia.com/code/event/drag)). Es ist ein jQuery-Lösung, so können Sie es verwenden, nur mit jQuery libs. Ich habe verwendet, jQuery 1.5.1 für es da einige neueren Funktionen arbeiten nicht richtig mit dem IE9 und vor (nicht getestet mit neueren Versionen von jQuery).
Vor Sie irgendwelche drag oder drop Betrieb zu einer Veranstaltung Sie zum aufrufen dieser Funktion wird zunächst:
Sie können auch blockieren alle Komponenten/Kinder für die Eingabe oder zu beschleunigen Ereignisbehandlung mithilfe der folgenden syntax:
Hier ist der code, den ich schrieb. Ich habe einige nette tricks zur Beschleunigung der Auswertung Dinge (siehe code).
Was es tut:
Auf den ersten, es übersetzt, single-touch-events in Maus-events. Es wird geprüft, ob ein Ereignis verursacht wird, die von einem element auf das element muss verschoben werden. Wenn es sich um ein Eingabe-Elemente wie input, textarea etc, es überspringt die übersetzung, oder, wenn eine standard-Maus-Ereignis verknüpft ist, wird es auch überspringen, eine übersetzung.
Ergebnis:
Jedes element auf ein draggable element noch funktioniert.
Happy coding, greetz,
Erwin Haantjes
InformationsquelleAutor der Antwort Codebeat