Javascript hammer.js can';t形手柄/在相同元件上设置抽头和双抽头
当使用hammer.js默认值“doubletap”时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.
<!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的来源,因为它真的很奇怪。