怎样让js实现状态自动循环切换?(如false和true的循环切换) 10
怎样让js实现状态自动循环切换?(如false和true的循环切换)如,一开始一个变量是true,然后先判断是不是true如果是就切换成false,否则切换成true,接...
怎样让js实现状态自动循环切换?(如false和true的循环切换)
如,一开始一个变量是true,然后先判断是不是true如果是就切换成false,否则切换成true,接下来一直重复上面的步骤
var runn=false;
if(runn==false){
setTimeout(function(){
runn=true;
},2000);//这段代码可以执行
}else{
setTimeout(function(){
runn=false;
},4000);//else后面的代码不执行
}
ob.onclick=function(){
alert(runn);
}//查看状态
为什么这段代码实现不了循环切换,有什么问题?应该怎么写?求高手解答 展开
如,一开始一个变量是true,然后先判断是不是true如果是就切换成false,否则切换成true,接下来一直重复上面的步骤
var runn=false;
if(runn==false){
setTimeout(function(){
runn=true;
},2000);//这段代码可以执行
}else{
setTimeout(function(){
runn=false;
},4000);//else后面的代码不执行
}
ob.onclick=function(){
alert(runn);
}//查看状态
为什么这段代码实现不了循环切换,有什么问题?应该怎么写?求高手解答 展开
2个回答
展开全部
js执行顺序是从上往下执行的,而且只执行一次。当runn =false的时候,你这个判断走的是上面,当然不会走下面去,当通过setTimeout延迟执行将runn改成true时,这个判断已经没有再让它重新执行的操作了,它自己怎么能自己执行呢。除非给这个判断加一个setTimeout定时任务。你可以改成这样:
var runn=false;
function change(){
if(runn == false){
runn = true;
setTimeout(change, 2000);
} else {
runn = false;
setTimeout(change, 4000);
}
}
var runn=false;
function change(){
if(runn == false){
runn = true;
setTimeout(change, 2000);
} else {
runn = false;
setTimeout(change, 4000);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询