与此问题相关的所有材料都在这里。
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();">
答案 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);
}