怎样让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);

}//查看状态

为什么这段代码实现不了循环切换,有什么问题?应该怎么写?求高手解答
展开
 我来答
蜂蝶恋花
2017-03-03 · 超过21用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:42.4万
展开全部
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);

}
}
四岁就可萌了
2017-03-03 · TA获得超过437个赞
知道小有建树答主
回答量:535
采纳率:0%
帮助的人:146万
展开全部
因为你没有改变TR的值,你看下你的if判断呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式