Javascript hammer.js can';t形手柄/在相同元件上设置抽头和双抽头

Javascript hammer.js can';t形手柄/在相同元件上设置抽头和双抽头,javascript,hammer.js,Javascript,Hammer.js,当使用hammer.js默认值“doubletap”时 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.

当使用hammer.js默认值“doubletap”时

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <title>Document</title>
        <style media="screen">
            .box {
                width: 400px;
                height: 400px;
                background-color: green;
            }
        </style>
    </head>
    <body>
        <div class="box">

        </div>
        <script src="js/hammer.js" charset="utf-8"></script>
        <script type="text/javascript">
        document.addEventListener("DOMContentLoaded", function () {
            var myElement = document.querySelector('.box')

            var hammer = new Hammer(myElement)

            hammer.on('doubletap', function (e) {
                console.log(e.type)
            }).on('tap', function (e) {
                console.log(e.type)
            })
        })
        </script>
    </body>
    </html>

文件
.盒子{
宽度:400px;
高度:400px;
背景颜色:绿色;
}
document.addEventListener(“DOMContentLoaded”,函数(){
var myElement=document.querySelector(“.box”)
var hammer=新锤子(myElement)
锤击打开('doubletap',功能(e){
console.log(e.type)
}).on('tap',功能(e){
console.log(e.type)
})
})
当我双击时,它会打印两次“tap”和一次“doubletap”,但我希望它只打印“doubletap”,不要启动“tap”

我试着要求失败和失败

所以我写下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>Document</title>
    <style media="screen">
        .box {
            width: 400px;
            height: 400px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="box">

    </div>
    <script src="js/hammer.js" charset="utf-8"></script>
    <script type="text/javascript">
    document.addEventListener("DOMContentLoaded", function () {
        var myElement = document.querySelector('.box')

        var hammer = new Hammer(myElement)
        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('doubletap', function (e) {
            console.log(e.type)
        }).on('singletap', function (e) {
            console.log(e.type)
        })
    })
    </script>
</body>
</html>

文件
.盒子{
宽度:400px;
高度:400px;
背景颜色:绿色;
}
document.addEventListener(“DOMContentLoaded”,函数(){
var myElement=document.querySelector(“.box”)
var hammer=新锤子(myElement)
var singleTap=new Hammer.Tap({event:'singleTap'});
var doubleTap=newhammer.Tap({event:'doubleTap',taps:2});
锤击。添加([双击,单击]);
doubleTap.识别为(singleTap);
单抽头。要求抽头([doubleTap]);
锤击打开('doubletap',功能(e){
console.log(e.type)
}).on('singletap',函数(e){
console.log(e.type)
})
})
但是它不记录任何东西(甚至错误消息),这真的很奇怪。锤子的版本是2.0.8。对不起,我的英语很差,希望这是清楚的。

尝试使用

var hammer = new Hammer.Manager(myElement); 
而不是

hammer = new Hammer(myElement).
再见。

尝试使用

var hammer = new Hammer.Manager(myElement); 
而不是

hammer = new Hammer(myElement).
再见。

请尝试以下代码:

var timeInMs = 0;
hammer.on('tap', function(e) {
    if((Date.now()-timeInMs)<300){
        //doubleTap
    }else{
        //tap
    }
    timeInMs = Date.now();
});
var-timeInMs=0;
锤击打开(“敲击”,功能(e){
如果((Date.now()-timeInMs)请尝试以下代码:

var timeInMs = 0;
hammer.on('tap', function(e) {
    if((Date.now()-timeInMs)<300){
        //doubleTap
    }else{
        //tap
    }
    timeInMs = Date.now();
});
var-timeInMs=0;
锤击打开(“敲击”,功能(e){

如果((Date.now()-timeInMs)这真的有效。我会看看Hammer的来源,因为它真的很奇怪。这真的有效。我会看看Hammer的来源,因为它真的很奇怪。