我有一个问题,即长按触摸时不会触发 JQuery 单击事件处理程序(带有触摸屏的 Raspberry Pi4 上的 Chromium 浏览器信息亭应用程序)。可能出现的情况是,年龄较大/速度较慢的人可以非常缓慢地触摸按钮等,在这种情况下,不会触发单击事件。我希望在这种情况下触发点击事件。我可以使用 touchstart、touchmove 和 touchend 事件来代替 click 事件,但这意味着每个 UI 元素有 3 个事件处理程序,并且每个都有自己的 touchdown 标志,因为它们不应该能够干扰其他 UI 元素的标志状态。
我想不出一个简单的方法来做到这一点。有什么想法吗?
我通过以下代码实现了所需的行为
// removes context menu event that was interfering with long key presses
window.addEventListener("contextmenu", function(e) {
e.preventDefault();
})
// do click event from long key press
window.addEventListener("touchend", function(e) {
e.preventDefault();
$(e.target).trigger("click");
})