在Android上实现jQuery Draggable http://jqueryui.com/demos/draggable/时遇到一些问题。我已经创建了html代码并使用我的浏览器对其进行了测试。然后,我在build.phonegap.com上对其进行了编译。获取.apk后,我将其安装在使用Android 2.2 Froyo的xp​​eria x8上。该应用程序运行良好,但是当我拖动对象时它不会移动。
我的方法有问题吗?
谢谢

最佳答案

此代码将touchstarttouchmovetouchend映射到其相应的鼠标事件:touchstart/mousedown仍然存在一个错误,因为无法直接映射坐标。

我要解决此问题的想法是将mousedown的分发延迟到touchmove发生,然后再使用touchmove的坐标分发两个鼠标事件。

var mouseEventTypes = {
    touchstart : "mousedown",
    touchmove : "mousemove",
    touchend : "mouseup"
};

for (originalType in mouseEventTypes) {
    document.addEventListener(originalType, function(originalEvent) {
        event = document.createEvent("MouseEvents");
        touch = originalEvent.changedTouches[0];
        event.initMouseEvent(mouseEventTypes[originalEvent.type], true, true,
                window, 0, touch.screenX, touch.screenY, touch.clientX,
                touch.clientY, touch.ctrlKey, touch.altKey, touch.shiftKey,
                touch.metaKey, 0, null);
        originalEvent.target.dispatchEvent(event);
    });
}

10-08 02:57