Javascript 我的设置间隔为';即使我的变量是

Javascript 我的设置间隔为';即使我的变量是,javascript,html,css,setinterval,Javascript,Html,Css,Setinterval,这是我的setInterval代码片段: var t = 0; var speed = 1000; // To display the speed setInterval(displaySpeed, 100); setInterval(timer, speed); // To diplay the speed as well function displaySpeed(){ document.getElementById("Tem").textContent = spe

这是我的setInterval代码片段:

  var t = 0;
  var speed = 1000;

// To display the speed
  setInterval(displaySpeed, 100);

  setInterval(timer, speed);

// To diplay the speed as well
function displaySpeed(){
  document.getElementById("Tem").textContent = speed;
}

function speedUp(){
  speed = speed - 100;
}

function slowDown(){
  speed = speed + 100;
 }

function timer(){
  t = Math.floor(Math.random() * 16) + 1;
  changeBackground();
}

加速()和减速()通过onclick连接到一个按钮。按钮将改变变量,但不会改变实际速度。定时器功能是选择一个介于1和16之间的随机数。

编辑:此代码显示/u/torazaburo在您的问题中回答的内容。 添加一个sugar函数来重新创建间隔,两种方法
加速()
减速()
都需要清除它才能更改速度

var intervalRef = setInterval(timer, speed);

function updateTimerSpeed(newSpeed) {
    intervalRef = setInterval(timer, newSpeed); 
}

function speedUp() {
  clearInterval(intervalRef);
  speed = speed - 100;
  updateTimerSpeed(speed);
}

function slowDown() {
  clearInterval(intervalRef);
  speed = speed + 100;
  updateTimerSpeed(speed);
}

要更改速度,您必须取消计时器并设置一个新的计时器。没有解释的代码没有帮助。你应该解释OP为什么会有问题,以及你的代码是如何解决的。编辑,添加属性。我发现他的回答相当简洁,我不想欺骗他/她。