2010-05-20 13 views
16

Tengo una página que usa JQuery UI; en particular la interacción Sortable.¿Cómo puedo obtener las funciones Draggable y ordenable de jQuery UI para que funcionen en el iPhone?

La página funciona bien para navegadores web de escritorio con ratones, sin embargo, no puedo obtener la funcionalidad de arrastrar y soltar para trabajar en Mobile Safari en el iPhone. Cualquier acción de arrastre simplemente se desplaza por la página.

La funcionalidad en mi página es extremadamente similar a la demo Sortable Empty-Lists en el sitio de JQuery UI. Esta página tampoco funciona en el iPhone.

¿Hay alguna forma de que las funciones de arrastrar y soltar funcionen en el iPhone?

Respuesta

24

De acuerdo con los documentos de Mobile Safari, no se admite la función de arrastrar y soltar, pero se puede simular. Dado que, básicamente, al arrastrar el dedo se desplazará el navegador, tendrá que desactivarlo. Eso se puede hacer así:

$(document).bind('touchmove', function(e) { 
    e.preventDefault(); 
}, false); 

lo contrario, el caso tendrá que manejar son touchstart, touchmove y touchend.

+0

Gracias Jakub, ¿Tiene alguna referencia a los documentos de Mobile Safari? – Damovisa

+5

http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW1 y por allí. –

+0

¡Impresionante, gracias! – Damovisa

1

Esta es una demostración de 1.9pre jQuery UI: https://dl.dropbox.com/u/3872624/lab/touch/index.html

El archivo jquery.mouse.ui.js está trabajando muy bien para mí.

+0

Usando 1.9 con jquery.mouse.ui.js es el boleto, ¡así que gracias! El uso de 1.8 parece funcionar al principio, pero ordenable y arrastrable tiene pequeñas peculiaridades que lo hacen inutilizable. – phatmann

+0

Desafortunadamente, esto no funciona correctamente si intenta utilizar la opción "manejar" en Clasificable. Después de arrastrar un elemento, cualquier intento posterior de arrastrar otros elementos simplemente termina arrastrando el primer elemento. Estoy investigando el problema. Esto también se mencionó [aquí] (http://stackoverflow.com/questions/6745098/jquery-ui-sortable-doesnt-work-on-touch-devices-based-on-android-or-ios/6795028#6795028) . – phatmann

+0

El enlace superior está roto :( – Chris

Cuestiones relacionadas