点击何时会变为暂停状态?

时间:2018-08-20 15:31:06

标签: javascript html reactjs web javascript-events

我正在制作一个Web应用程序,如果用户单击vs按住按钮,按钮的行为会有所不同。我一直在尝试不同的时机,这让我想知道这种事情是否有已建立的标准。

为了澄清:我想知道是否有一个确切的时间是标准的。下面是我使用的代码,其中150ms是保持的阈值。

function onMouseDown()
{
    var holdTimeout = setTimeout(function()
    {
        //Hold code (also cancels click event)
    }, 150);

    var cancelHold = function()
    {
        clearTimeout(holdTimeout);
    };
    window.onmouseup = cancelHold;
}

function onClick()
{
    //Click code
}

1 个答案:

答案 0 :(得分:0)

准确回答您的问题,按住即可单击。您可以在click事件内部设置mousedown事件(实际上是发布的)。运行下面的代码,然后尝试按住并释放鼠标按钮。

document.getElementById("click").addEventListener('mousedown', (e) => {
  var i = 0;
  var int = setInterval(() => {
    console.log("hold " + i++);//<-- actions when we hold the button
  }, 200)

  document.getElementById("click").addEventListener("click", () => {

    clearInterval(int);

    console.log("release")//<-- actions when we release the button

  })

});
<div id="click">click</div>

在这种情况下,如果按住按钮小于200毫秒,则仅触发click(发布)事件。