我用contextmenu个事件来捕捉右击.通过"长按"触发事件的触控设备.

我遇到的问题是,在touch被释放之前,contextmenu事件不会在touch 设备上触发.我可以监听touchstart/mousedown事件并设置超时,但这并不准确,因 for each 设备可能都有自己的long press激活延迟.

那么,有没有一种方法可以准确地检测long press在touch 屏设备上何时被激活?(在某些设备上,当long press被激活时,会有触觉反馈)

推荐答案

如 comments 部分所述.

在大多数设备上,contextmenu会在不释放touch 的情况下触发,因此在大多数情况下,使用contextmenu事件来获得所需的结果是可以的.

这可能是Chromium开发工具中的一个bug,因为您已经用它进行了测试.我建议只使用contextmenu事件.

如果特定设备在触控释放时真的启动了上下文菜单,用户希望在你的网站/应用程序上有相同的行为,所以按照这种方式应该没问题.

Javascript相关问答推荐

使用脚本标签时的JSDoc智能感知

Flutter:显示PDF和视频,但阻止下载

在JavaScript中打开和关闭弹出窗口

使用JavaScript重命名对象数组中的键

为什么使用MAX_SAFE_INTEGER生成随机整数时数字分布不准确?

如何在NightWatch.js测试中允许浏览器权限?

django无法解析余数:[0] from carray[0]'

按下同意按钮与 puppeteer 师

扫描qr code后出错whatter—web.js

为什么ngModel不能在最后一个版本的Angular 17上工作?'

Spring boot JSON解析错误:意外字符错误

在Vite React库中添加子模块路径

如何从隐藏/显示中删除其中一个点击?

JS,当你点击卡片下方的绿色空间,而它是在它的背后转动时,

Web Crypto API解密失败,RSA-OAEP

在我的index.html页面上找不到我的Java脚本条形图

Puppeteer上每页的useProxy返回的不是函数/构造函数

邮箱密码重置链接不适用于已部署的React应用程序

令牌JWT未过期

将基元传递给THEN处理程序