Onclick重置setInterval

use*_*186 0 javascript jquery

<!DOCTYPE html>
<html>
<head>
<script>

function timer(x) {
    if (x == 1) {
        //reset timer 
        }
    var i = 0;
    var timer = setInterval(function() {

        var x = document.getElementById("demo").innerHTML = i;
        i = i + 1;

    }, 500);
}

</script>
</head>
<body>


<p id="demo">hello</p>

<button type="button" onclick="timer(0)">change</button>

<button type="button" onclick="timer(1)">reset</button>

</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

我想重置计时器onclick.例如,如果setIntervaltime设置为5秒并且经过3秒,之后如果点击重置按钮,它应该从5秒开始增益.如何做到这一点.

Que*_*tin 6

  1. 保持setTimeout你可以再次得到它的某个地方的返回值(目前你将它存储在一个局部变量中,所以它在函数结束时消失)
  2. 呼叫 clearTimeout(timer);
  3. setTimeout用你想要的任何参数再次调用.