如何将单击和轻按合并为单个调用

问题描述 投票:0回答:1

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

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

jquery events jquery-mobile touch touch-event
1个回答
0
投票

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

// 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");
})
© www.soinside.com 2019 - 2024. All rights reserved.