Javascript set interval在奇怪的时间调用函数
我有5个div,我想在调用函数时更改其颜色,但是每次调用函数时,设置间隔中给定的时间似乎会减少Javascript set interval在奇怪的时间调用函数,javascript,Javascript,我有5个div,我想在调用函数时更改其颜色,但是每次调用函数时,设置间隔中给定的时间似乎会减少 let runways = [runway1, runway2, runway3, runway4, runway5]; const checkRunway = () =>{ for(let i = 0; i < runways.length; i++){ if(runways[i].available === true){ runways
let runways = [runway1, runway2, runway3, runway4, runway5];
const checkRunway = () =>{
for(let i = 0; i < runways.length; i++){
if(runways[i].available === true){
runways[i].available = false
document.getElementById(`runway${[i]}`).style.backgroundColor = 'red'
break;
}
}
}
const landing = () =>{
if(selection.value == 'DC35'){
checkRunway();
setInterval(function(){
runways[i].available = true;
document.getElementById(`runway${[i]}`).style.backgroundColor = 'green'
}, 1000)
}
}
let跑道=[1号跑道、2号跑道、3号跑道、4号跑道、5号跑道];
常数检查跑道=()=>{
for(设i=0;i{
如果(selection.value==“DC35”){
检查跑道();
setInterval(函数(){
跑道[i]。可用=真;
document.getElementById(`runway${[i]}`)。style.backgroundColor='green'
}, 1000)
}
}
您的设置间隔
时间没有减少,也没有停止。您从未告诉它停止,因此最可能发生的情况是,每次调用函数时,您都在复制setInterval
s,这意味着多次运行。这会给你一个错误的印象,你当前的点击会更快地引起反应。实际上,它是一个正在执行的前一个setInterval
如果您只希望它发生一次,请说onclick
,然后改用setTimeout
setTimeout(function() {
runways[i].available = true;
document.getElementById(`runway${[i]}`).style.backgroundColor = 'green'
}, 1000);
landing
是如何/何时调用的?您甚至可以如何调用跑道[i]。在着陆中可用[i]?还是我的Javascript太差了?我想你可能把setInterval
和。也就是说,您的代码正在做什么还不清楚,等等。我们需要一个here@FedericoklezCulloca在我的html文档中,使用带有按钮的onclick调用landing函数。您正在以对象数组的形式访问跑道,但我看到的只是无效的字符串数组?