JavaScript Timers

JavaScript Timers

本文关键字:Timers JavaScript      更新时间:2023-09-26

我想在发生单击后调用setTimeout()

如果用户在300ms过去之前再次单击,我想停止该计时器,触发另一个函数并重新启动原始计时器。

我知道setTimeout()但我不知道如何处理这个问题。

JavaScript:

myTimeout = setTimeout(function() {
                // this will fire in 300ms if you don't perform some other action!
          },300); 
document.getElementById("button").click = function() {
   // button clicked, stop the timeout
   clearTimeout(myTimeout);
};

.HTML:

<button id="button">Click me</button>

setTimeout 启动 300 毫秒计时器。 单击处理程序将单击事件绑定到页面上的按钮,单击该按钮时,将使用 clearTimeout 停止计时器。

调用 setTimeout 时,请将其分配给变量。然后,您可以使用该变量稍后通过调用 clearTimeout 来停止计时器。

您可以对任何事件使用相同的技术,例如按键、鼠标悬停事件、按钮或 DOM 元素单击等等。

请注意,相同的过程也适用于 setInterval。

myInterval = setInterval(function() {
               // do stuff every 300ms
             },300);
clearInterval(myInterval);  // stop the interval

使用 addEventListener:

function start() {
    window.addEventListener("click", function() { 
        timeout = setTimeout(function() {
            // do stuff after 300ms after the first click
            clearTimeout(timeout);
            start();
        }, 300)
    }, false);
}

以上应该在页面上绑定全局点击侦听器,并在点击后递归清除并重新启动计时器。如果没有点击,侦听器会停止,但这应该可以让您开始。

我认为,你可以为此使用超时...window.setTimeout(", 300);

我不知道你到底想做什么...但是,我希望这会对您有所帮助。