Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测浏览器/设备是否支持双击事件_Javascript_Android_Jquery_Ios_Mobile - Fatal编程技术网

Javascript 检测浏览器/设备是否支持双击事件

Javascript 检测浏览器/设备是否支持双击事件,javascript,android,jquery,ios,mobile,Javascript,Android,Jquery,Ios,Mobile,我有一个包含多行的表。 每行单击一次即可选择。 双击该行将在同一窗口中打开该行所代表的数据表 使用移动设备时,双击(双击?)不会触发我的双击事件,而移动浏览器只是缩放 经过思考,我认为移动设备只需单击/点击一下就可以打开数据表 现在,在为表设置事件侦听器时,我正在检测它是否是移动设备浏览器,代码如下: if( /Android|webOS|iPhone|iPad/i.test(navigator.userAgent) ) { // Single click event bind, ope

我有一个包含多行的表。 每行单击一次即可选择。 双击该行将在同一窗口中打开该行所代表的数据表

使用移动设备时,双击(双击?)不会触发我的双击事件,而移动浏览器只是缩放

经过思考,我认为移动设备只需单击/点击一下就可以打开数据表

现在,在为表设置事件侦听器时,我正在检测它是否是移动设备浏览器,代码如下:

if( /Android|webOS|iPhone|iPad/i.test(navigator.userAgent) ) {
    // Single click event bind, open
} else {
    // Single click event bind, select
    // Double click event bind, open
}
与其依赖用户代理,我更愿意做一些功能检测,这样任何无法双击的设备都可以工作

我试着检测我的Android设备上是否有dblclick事件,它是可用的。
我想这是有道理的,因为浏览器确实支持它,但设备在双击时会触发不同的事件

我唯一能想到的另一件事是检查
touchstart
等事件是否可用,但这似乎与检查用户代理一样错误


有没有什么好方法可以检测浏览器/客户端是否支持预期的双击

可以尝试使用超时来检查第一次单击后是否有另一次单击

$(Elm).click(function(evnt){
  clicks++;
  if (clicks == 1) {
    setTimeout(function(){
      if(clicks == 1) 
        // Single click event bind, open
       else 
         // Double click event bind, open
    },2000);
});

你使用这个事件吗$dblclick()@是的,这就是我正在使用的jQuery事件。将jQuery添加到我的标记中,以澄清jQuery在我的案例中是可用的。感谢您的回答!但是,上述情况是否会使支持双击的设备无法单击(选择一行)?我不知道设备是否可以双击,但您可以绕过单击并检查是否是双击。。