3

地铁应用程序是否有内置的长按事件?可能不使用任何外部库,例如 jQuery。

4

1 回答 1

5

你的意思是点击并按住触摸手势吗?如果是这样,则事件是 MSGestureHold,但您必须配置一个 MSGesture 对象来获取这些:

var gestureObject = new MSGesture();
gestureObject.target = divElement;
divElement.gestureObject = gestureObject;
divElement.addEventListener("pointerdown", pointerDown);
divElement.addEventListener("MSGestureHold", gestureHold);

function pointerDown(e) {
    //Associate this pointer with the target's gesture
    e.target.gestureObject.addPointer(e.pointerId);
}

function gestureHold(e) {
    //Do what you need.
}

您对 MSGestureTap 事件使用相同的结构,对其他触摸交互使用 MSGestureStart、MSGestureChange、MSGestureEnd 和 MSInertiaStart。也就是说,在创建了 MSGesture 事件并处理了 pointerdown 以将指针与手势相关联之后,您只需为其他 MSGesture* 事件添加侦听器,如上所示的 MSGestureHold。

在我的第二版预览书第 12 章的配套内容中,我有一段基本的代码(来自 MSPress)。这是一个名为 PointerEvents 的示例。

于 2013-11-13T17:07:24.913 回答