我有一个包含多行的表。 通过在行上单击一次可以选择每一行。 双击该行将打开该行在同一窗口中表示的数据表。
使用移动设备时,双击(双击?)不会触发我的双击事件,移动浏览器只会缩放。
在考虑之后,我认为移动设备无论如何只需点击一下即可打开数据表更有意义。
现在我在设置表的事件监听器时检测它是否是移动设备浏览器,使用以下代码:
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
等事件是否可用,但这似乎与检查用户代理一样错误。
有没有什么好方法可以检测浏览器/客户端是否支持按预期双击?
答案 0 :(得分: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);
});