Ich versuche, jQuery drag/drop so einzurichten, dass es gut mit iPad-Touch-Ereignissen funktioniert. Ich fand diesen Code im Internet:Umgang mit iPad-Touch-Ereignissen für ziehbare/aussetzbare Dateien (undefined changedTouches)
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;
}
//initMouseEvent(type, canBubble, cancelable, view, clickCount,
// screenX, screenY, clientX, clientY, ctrlKey,
// altKey, shiftKey, metaKey, button, relatedTarget);
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();
}
Es scheint gut zu funktionieren, wenn ich die touchHandler zum document
Berührungsstart/move/Ende anhängen, aber dann keine native Zoomen/auf dem iPad Scrollen erlaubt ist, also bin ich versuchen, diesen Handler nur an die ziehbaren Dateien selbst anzuhängen.
Das Problem, das ich damit sehe, ist, dass event.changeTouches
aus irgendeinem Grund immer undefiniert ist, wie Sie in http://jsfiddle.net/myLj2/1/ Zeuge sein können. Ich kann mir keinen Grund vorstellen, warum ein Berührungsereignis immer eine undefinierte changeTouches
Eigenschaft hat und deshalb wird dieser Code nicht funktionieren. Irgendwelche Gedanken?
gerade meinen Tag gerettet! –