有没有办法明确测试设备是否支持双击?

时间:2014-01-31 20:14:06

标签: javascript node.js

我写了一个游戏,它允许用户配置自己的游戏设置。

其中一个选项是通过双击来播放卡片。但是,在移动设备上,如果用户选择此选项,则游戏会因为没有双击移动设备而卡住。

所以我想做的是检测一个设备是否支持双击,如果它支持双击,那么很好,但如果它不会回归到另一个偏好。

我尝试了一次而失败了。我尝试检测设备是否支持触摸(使用modernizr),但这是错误的,因为有些计算机同时支持双击和触摸,在这种情况下我想让人们双击。 (支持触摸不支持双击)

有没有办法判断浏览器/设备组合是否支持传统的双击?

1 个答案:

答案 0 :(得分:0)

不,除了提示用户尝试执行操作并检测是否发生单击或双击之外,还没有(用于)检测可用输入方法的交叉设备标准。

另一方面,您可以尝试使用像Modernizr(http://modernizr.com/docs/)这样的检测库来检测您是否在 touch 设备上,然后从检测和实际开始双击以检测频率内的点击次数。这看起来如下所示:

var d = new Date();
var lastClick = d.getTime();
var clickDelay = 500; //half second
if(Modernizr.touch){
body.click(function(){
  var currentClick = d.getTime();
  if(currentClick - lastClick < clickDelay){
  lastClick = 0; //prevent tripleclick from registering
  //doubleclick detected, do something
  }
});
} else /*use your current doubleclick detection*/ {
//do something
}

我也过于简单化,因为在这个例子中你会想要检测触摸事件而不是点击,但这应该给出一般的想法。