2013-01-16 140 views
3

我有一个包含多行的表。 每行可通过在该行上单击一次进行选择。 双击该行可打开该行在同一窗口中表示的数据表。检测浏览器/设备是否支持双击事件

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

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

现在,我检测,如果它是一个移动设备浏览器,当设置了该表的事件侦听器,使用此代码:

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 
} 

不是依靠用户代理,我woud更愿意做一些功能检测,所以任何设备无法进行双击工作。

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

我唯一能想出的其他事情是检查touchstart等事件是否可用,但看起来像检查用户代理程序一样错误。

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

+0

u使用此事件后,再点击一下? $(榆树).dblclick(); –

+0

@HodayaShalom是的,这是我正在使用的jQuery事件。将jQuery添加到我的标记中,以阐明jQuery在我的情况下可用。 – Wertisdk

回答

5

也许尝试使用超时,检查是否有一个是第一次点击

$(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); 
}); 
+0

谢谢你的回答! 但是,以上操作不会对支持双击的设备进行单击(选择一行)吗? – Wertisdk

+0

我不知道是否有可能设备双击,但你可以绕过单击并检查它是否双击。 –

相关问题