如何在我的功能中清除计时器?

时间:2018-05-17 07:22:29

标签: javascript timer

与此问题相关的所有材料都在这里。

All the material related with this issue

打开p1.html,雪会自动飞起 点击stop button无法阻止飞行的sonw。

也许stopFly函数中的clearInterval(timer);无法运行 怎么解决?

js的一部分。

function stopFly(){
    clearInterval(timer);
    document.getElementById("startButton").disabled = "";
    document.getElementById("stopButton").disabled = "disabled";
}

window.onload=function(){
    createManySnow();
    setInterval(startFly,100);
}  

html的一部分。

<input type="button" value="new" onclick="createManySnow();">
<input type="button" id="startButton"  value="start"  onclick="timer=setInterval(startFly,100)">
<input type="button" id="stopButton"     value="stop" onclick="stopFly();">

2 个答案:

答案 0 :(得分:3)

您永远不会在timer函数中分配onload变量。所以间隔在没有指针的情况下运行。

window.onload = function () {
    createManySnow();
    window.timer = setInterval(startFly, 100);
};

答案 1 :(得分:1)

您必须为您创建的计时器分配一个变量。

let startFlyInterval;
function stopFly(){
    clearInterval(startFlyInterval);
    document.getElementById("startButton").disabled = "";
    document.getElementById("stopButton").disabled = "disabled";
}

window.onload = function(){
    createManySnow();
    startFlyInterval = setInterval(startFly, 100);
}