1
我使用Hummer.js来处理单击和双击,两个手势都被识别为延迟几百毫秒。 这里(fiddle)Hammer.js - 无延迟支持单击和双击
var hammertime = new Hammer.Manager(containerElement);
hammertime.add(new Hammer.Tap({event: 'doubletap', taps: 2}));
hammertime.add(new Hammer.Tap({event: 'singletap'}));
hammertime.get('singletap').requireFailure('doubletap');
hammertime.on("doubletap", onDoubleTap);
hammertime.on("singletap", onSingleTap);
证明单抽头延迟是不可避免的,因为它必须等待,以确保这实际上不是一个双击。但是双击延迟没有理由。 我可以删除requireFailure设置并处理这种我自己在这里演示的逻辑(fiddle)。
var hammertime = new Hammer.Manager(containerElement);
hammertime.add(new Hammer.Tap({event: 'doubletap', taps: 2}));
hammertime.add(new Hammer.Tap({event: 'singletap'}));
//hammertime.get('singletap').requireFailure('doubletap');
hammertime.on("doubletap", onDoubleTap);
hammertime.on("singletap", setupSingleTapTimeout);
function setupSingleTapTimeout() {
cancelSingleTapTimeout();
timeoutId = window.setTimeout(onSingleTap, 300);
}
function cancelSingleTapTimeout() {
if(timeoutId !== null) {
window.clearTimeout(timeoutId);
timeoutId = null;
}
}
function onDoubleTap() {
cancelSingleTapTimeout();
...
}
,但我会多过早地保持关注分离,离开这种对锤,工作也似乎喜欢的事就应该知道怎么做..
这些人知道如何实现这一目标用锤子