首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >轻拍(no realease)或单击javascript中的事件?

问轻拍(no realease)或单击javascript中的事件?
EN

Stack Overflow用户
提问于 2019-06-04 00:42:07
回答 1查看 629关注 0票数 0

我希望每当用户点击鼠标或触摸屏时,都会触发一个事件。我尝试过使用"click“事件,但在触摸屏上,它会等待,直到点击完成,与其说是点击事件,不如说是点击即释放事件。感觉不太对劲。

是否存在轻触(无释放)或单击监听的事件?

附注:这个问题(JavaScript custom tap event)是关于jquery的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-04 00:42:07

不,不存在代表鼠标和触摸屏的默认“选择”操作的单个事件。不过,您可以混合使用事件。

用户期望创建反应的两个最常见的事件是" click“和" touchstart ",但你不能简单地同时听到这两个事件,因为click事件通常是在touchstart事件之后触发的(导致双重触发)。

以下是一些用于避免此问题的简单代码:

代码语言:javascript
复制
function onTapOrClick(element, cb) {
    let debounce;  // temporarily disables on click events when touchstarts happen
    element.addEventListener("touchstart", (event) => {
        if (debounce) { clearTimeout(debounce); }
        debounce = setTimeout(() => debounce = undefined, 1000);  // debounce is 1000ms, could easily be longer
        cb(event);
    });
    element.addEventListener("click", (event) => {
        if (debounce) { return; }
        cb(event);
    });     
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56431434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档