如何绑定'点击'和& # 39;doubletap& # 39;到Hammer.js中的相同元素

How to bind 'tap' and 'doubletap' to the same element in Hammer.js?

本文关键字:Hammer js 元素 何绑定 绑定 点击 doubletap      更新时间:2023-09-26

我目前(尝试)创建一些基本元素,我正在使用cordova在eclipse中工作的手机游戏。这里我想做的主要事情是在同一个元素上设置两个tap事件。下面的代码显示了我是如何尝试解决这个问题的,但是当我尝试双击时,它不会被检测到-我所得到的只是两个单一的点击。我试过不同的方法,但都没用。

当双击失败时,我也在控制台上得到这个警报:"试图完成输入事件,但输入事件接收器已被处置"。
var doubletapped = false,
    tapped = false;
$(function() {
    var element = document.getElementById('blue');
    var hammertime = Hammer(element).on("tap doubletap", function(event) {
        if (event.type == 'doubletap') {
            tapped = false;
            doubletapped = true;
            alert('doubleTap!');
            console.log('doubleTap!');
        }
        if (event.type == 'tap') {
            doubletapped = false;
            tapped = true;
            alert('single tap!');
            console.log('singleTap!');
        }
    });
});

如Hammer.js更改日志中所解释的,我设置了tap_always = false,但这并没有什么不同。你有什么建议吗?有没有其他的库,我可以做同样的事情,而没有这个问题?

我想要实现的是检测元素上不同的点击或/和手势,然后做不同的事情。例如,如果单点元素#1,则播放音频文件#1,如果双点同一元素,则播放音频文件#2。

请帮忙!

欢呼

试试这个-

var hammer = new Hammer.Manager(element, {});
var singleTap = new Hammer.Tap({event: 'singletap' });
var doubleTap = new Hammer.Tap({event: 'doubletap', taps: 2 });
hammer.add([doubleTap, singleTap]);
doubleTap.recognizeWith(singleTap);
singleTap.requireFailure([doubleTap]);
hammer.on('singletap', function() { console.log('single tap!') });
hammer.on('doubletap', function() { console.log('double tap!') });