在Android上实现jQuery Draggable http://jqueryui.com/demos/draggable/时遇到一些问题。我已经创建了html代码并使用我的浏览器对其进行了测试。然后,我在build.phonegap.com上对其进行了编译。获取.apk后,我将其安装在使用Android 2.2 Froyo的xperia x8上。该应用程序运行良好,但是当我拖动对象时它不会移动。
我的方法有问题吗?
谢谢
最佳答案
此代码将touchstart
,touchmove
和touchend
映射到其相应的鼠标事件: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);
});
}