[英]Tap (no realease) or click event in javascript?
每當用戶點擊鼠標或觸摸屏時,我都希望觸發事件。 我已經嘗試過使用“點擊”活動,但是在觸摸屏上,它會等到點擊完成后更多的是點按並釋放而不是點擊事件。 感覺不對。
是否有一個事件可以點擊(沒有發布)或點擊收聽?
PS這個問題( JavaScript自定義點擊事件 )是關於jquery。
不,沒有單個事件代表鼠標和觸摸屏的默認“選擇”動作。 但是,您可以使用各種事件。
用戶期望創建反應的兩個最常見事件是“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);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.