Sto utilizzando il codice seguente per consentire il trascinamento della selezione sul mio sito Web. Tuttavia, mentre le parti del mio codice che hanno funzionalità di trascinamento della selezione, su un iPhone, non riesco a scorrere o spostare la pagina in alcun modo. Posso trascinare lo spostamento &, ma la normale funzionalità touch di iPhone non funziona più!Trascinare la selezione sui dispositivi mobili utilizzando un codice che traduce l'evento (codice incluso), ma gli eventi normali non funzionano
Ho trovato il frammento di seguito in diverse risposte StackOverflow quindi mi chiedo se c'è una soluzione per questo. Voglio essere in grado di trascinare & di rilascio su entrambi i siti Web & mobile.
Grazie!
mio codice trascinamento (solo un elenco):
$(function() {
$(".drag_me ul").sortable();
});
codice per gli eventi di tocco:
function touchHandler(event)
{
var touches = event.changedTouches,
first = touches[0],
type = "";
switch(event.type)
{
case "touchstart": type = "mousedown"; break;
case "touchmove": type="mousemove"; break;
case "touchend": type="mouseup"; break;
default: return;
}
var simulatedEvent = document.createEvent("MouseEvent");
simulatedEvent.initMouseEvent(type, true, true, window, 1,
first.screenX, first.screenY,
first.clientX, first.clientY, false,
false, false, false, 0/*left*/, null);
first.target.dispatchEvent(simulatedEvent);
event.preventDefault();
}
function init()
{
document.addEventListener("touchstart", touchHandler, true);
document.addEventListener("touchmove", touchHandler, true);
document.addEventListener("touchend", touchHandler, true);
document.addEventListener("touchcancel", touchHandler, true);
}
Volevo solo dire che lo uso su un'app Web per l'iPad. Tutti gli altri eventi funzionano correttamente, deve essere un errore nel codice. Per riferimento: http://www.midemos.com/demos/iphone/touch/?/iphone/touch/ – Charlie