5

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

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

经过一番思考,我认为移动设备通过单击/点击打开数据表更有意义。

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

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等事件是否可用,但这似乎与检查用户代理一样错误。

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

4

1 回答 1

6

也许尝试使用超时来检查第一次点击后是否有另一次点击

$(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);
});
于 2013-01-16T08:14:52.623 回答