JavaScript定时器

时间:2012-04-09 03:33:30

标签: javascript html5 timer

我想在点击发生后拨打setTimeout()

如果用户在300ms通过之前再次点击,我想停止该计时器,启动另一个功能并重新启动原始计时器。

我知道setTimeout(),但我不确定如何解决这个问题。

2 个答案:

答案 0 :(得分:3)

<强> 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启动300ms计时器。 click处理程序将click事件绑定到页面上的按钮,单击该按钮时,将使用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);
}

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

答案 1 :(得分:0)

我想,您可以使用超时... window.setTimeout(“”,300);

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