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

标签 javascript android jquery ios mobile

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

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

经过深思熟虑后,我认为对于移动设备来说,通过单击/点击打开数据表更有意义。

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

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
}

与其依赖用户代理,我更愿意做一些功能检测,这样任何无法双击的设备都可以工作。

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

我唯一能想出的另一件事是检查 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);
});

关于javascript - 检测浏览器/设备是否支持双击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353763/

相关文章:

javascript - HTML 换行方法

javascript - jQuery - 文本装饰下划线切换

javascript - 如果 mData 为 null,jQuery DataTable : Callback function(fnUpdate, fnCreatedCell 等)将不起作用

android - Android 6 (Marshmallow) 中的不稳定 BLE 连接

android - 如何将两个适配器设置为一个列表?

java - HttpResponse 客户端协议(protocol)异常

javascript - 如何将 highcharts no-data-to-display 模块用作 es6 模块?

javascript - 在控制台中有效,但在内容脚本中无效

javascript - 在流程图上组织棒轴标签

javascript - 滚动网站时动画无法正常工作