簡體   English   中英

在javascript中點擊(沒有realease)或點擊事件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM