1 回答
TA贡献1757条经验 获得超8个赞
不,没有单个事件代表鼠标和触摸屏的默认“选择”操作。但是,您可以混合使用事件。
用户希望创建反应的两个最常见事件是“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);
});
}
添加回答
举报
