我想在一个特定的div上实现双击事件,如下所示:
<div id="divID" ondblclick = 'alert("double click!!");' >
它在谷歌Chrome浏览器上工作,但当我用手机打开它时,它不工作,顺便说一下,单击工作。
ps:我加了这两个东西
<meta name="viewport" content="width=device-width, initial scale=1,user-scalable=no">
还有这个
body {
-ms-touch-action: manipulation;
touch-action: manipulation;}
但是它不起作用!
6条答案
按热度按时间aor9mmx11#
我也有同样的问题。在触摸设备上,如果你想检测双击手势,并且在大多数情况下使用ondblclick事件,它将不起作用,而且问题是它也会触发onclick。解决方案之一是使用以下代码示例实现双击检测模式:
你可以把它叫做
tapOnce和tapTwice是您的函数,将在相应的情况下调用。这个解决方案也适用于浏览器。
参考文献
jhdbpxl92#
下面是外部函数'doubletap',它可能会有所帮助:
htzpubme3#
将jQuery移动的加载到您的项目中,并尝试使用
taphold
或通过该API提供的其他一些特定于移动设备的触摸事件。以下是jQuery移动的文档,其中包含您可以使用的所有事件:http://api.jquerymobile.com/category/events/
ffvjumwh4#
以下是TS React用户的代码片段。传入click事件,这样只有在同一元素被单击两次时才会调用双击
用途
hc2pp10m5#
仅使用JavaScript
您可以使用“touchstart”事件进行单次触摸,
而是计算他应该再次点击的时间
我使用400(0.4s),因为它是两次触摸之间的较长持续时间
这只是一个估计,但仍然是一个合理的时间
如果出现此错误:
如果element =“document”或“document.body”,则event.preventDefault()不起作用
因此,解决方案是,你应该有一个完整的页面div容器:
uujelgoq6#
如果你需要简单的纯js,那么试试像gist这样的东西。