如何将点击和点击按住合并到单个通话中

How to combine click and taphold into single call

提问人:ejectamenta 提问时间:10/12/2023 更新时间:10/13/2023 访问量:17

问:

我有一个问题,因为长时间触摸按下(带有触摸屏的 Raspberry Pi4 上的 Chromium 浏览器信息亭应用程序)不会触发 JQuery 单击事件处理程序。可能是年龄较大/速度较慢的人可以非常缓慢地触摸按钮等,在这种情况下,不会触发单击事件。我希望在这种情况下触发点击事件。我可以使用 touchstart、touchmove 和 touchend 事件而不是 click 事件,但这意味着每个 UI 元素有 3 个事件处理程序,并且每个事件处理程序都有自己的 touchdown 标志,因为它们不应该干扰其他 UI 元素的标志状态。

我想不出一个简单的方法来做到这一点。有什么想法吗?

jQuery 事件 jquery-mobile touch-event

评论


答:

0赞 ejectamenta 10/13/2023 #1

我通过以下代码实现了所需的行为

// 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");
})