在 javascript 中点击 (no realease) 或点击事件?

每当用户单击鼠标或触摸屏时,我都希望触发事件。我试过使用“点击”事件,但在触摸屏上它会等到点击完成,并且更多的是点击和释放而不是点击事件。感觉不太对。

是否有点击(不释放)或点击收听的事件?


小怪兽爱吃肉
浏览 113回答 1
1回答

陪伴而非守候

不,没有单个事件代表鼠标和触摸屏的默认“选择”操作。但是,您可以混合使用事件。用户希望创建反应的两个最常见事件是“click”和“touchstart”,但您不能简单地同时监听这两个事件,因为 click 事件通常在 touchstart 事件之后触发(导致双重触发)。以下是一些避免此问题的简单代码: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);    });     }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript