Подтвердить что ты не робот

Drag & Drop на Safari iOS: не перетащите, не ответьте на падение на рабочем столе/iPad

Я кодирую веб-страницу для просмотра на iPad. Он использует перетаскивание Safaris/Webkits. Я точно скопировал пример перетаскивания кода Safari, но он не работает.

Моя проблема: Событие ondrop никогда не запускается при запуске веб-страницы (HTML, CSS и Javascript) на Safari Desktop или в Safari на iPad. На ipad я не могу даже перетащить элементы (появляется микроскопия, и она не будет перетаскиваться, когда я держусь и передвигаю палец над элементом). Однако перетаскивание работает на рабочем столе.

Что происходит не так?

Пример небольшого кода можно найти в самой нижней части этой страницы: http://developer.apple.com/library/safari/#documentation/appleapplications/Conceptual/SafariJSProgTopics/Tasks/DragAndDrop.html

Вот JSFiddle (помните, что перетаскивание - это Webkit, поэтому только для Safari - эта веб-страница предназначена только для ipad): http://jsfiddle.net/eyM3y/

4b9b3361

Ответ 1

Рабочая альтернатива:

Во-первых, используйте jquery UI http://jqueryui.com/demos/ для функции перетаскивания

а затем добавьте этот script https://github.com/furf/jquery-ui-touch-punch для воспроизведения в Ipad или Iphone.

Надеюсь, что это поможет.

Ответ 2

Вы читали верхнюю часть страницы, с которой вы связались в документации Apple? В нем говорится:

Примечание. Эта технология поддерживается только на настольных версиях Safari. Для iOS используйте DOM Touch, описанную в разделе "Управление событиями" (часть Руководства по веб-контенту Safari) и Справочник дополнений Safari DOM.

Ссылка DOM Touch

Ссылка на дополнения DOM Safari

Я считаю, что вы можете прослушивать события touchmove и touchhend, а не перетаскивать мышью.:)

Ответ 3

У меня была аналогичная проблема с одним из моих проектов, но ее можно решить, следуя руководству: http://popdevelop.com/2010/08/touching-the-web/. Это работает для меня. Надеюсь, вам понравится.