我正在开发一个比较站点,您可以在其中使用 jQuery UI 的可排序功能对项目进行水平排序。所有项目都在一个可以水平或垂直滚动的容器内。它在桌面上运行良好,我正在尝试让它在平板电脑上运行。
我已经可以通过以下方式使可排序功能在平板电脑上工作:jsFiddle
document.addEventListener("touchstart", module.bindTouchHandler, true);
document.addEventListener("touchmove", module.bindTouchHandler, true);
document.addEventListener("touchend", module.bindTouchHandler, true);
document.addEventListener("touchcancel", module.bindTouchHandler, true);
module.bindTouchHandler = function(event){
var touch = event.changedTouches[0];
var simulatedEvent = document.createEvent("MouseEvent");
simulatedEvent.initMouseEvent({
touchstart: "mousedown",
touchmove: "mousemove",
touchend: "mouseup"
}[event.type], true, true, window, 1,
touch.screenX, touch.screenY,
touch.clientX, touch.clientY, false,
false, false, false, 0, null);
touch.target.dispatchEvent(simulatedEvent);
event.preventDefault();
}
问题是不同的触摸事件现在阻止了水平/垂直滚动的可能性。我想推迟一下。就像只有在用户触摸元素 2 秒时才开始排序/拖动元素。
我该如何处理?