为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的速度是翻倍的在算的

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<h2>操作完成</h2>

<p><a id="num1">10</a>秒后返回主页<a href="javascript:goBack();">返回</a></p>

<script type="text/javascript">

var num = 10;

var time = null;

clearInterval(time);

function back1(){

var num2 = document.getElementById("num1");

num2.innerHTML=num;

         num--;

            setInterval("back1()",1000)

/*if(num!==0){

window.location.href="http://www.baidu.com";

             clearInterval("back1()")

}

        else{

         

        }

        */

}

setTimeout("back1()",1000)

function back2(){

window.history.go(-1);

}

</script>


</body>

</html>


正在回答

3 回答

setInterval("back1()",1000)

你放到back1里面,等于是递归调用,每调用一次back1就会多一倍的计时器,指数增长,1变2,2变4,4变8.。。。

0 回复 有任何疑惑可以回复我~
#1

慕盖茨8599025 提问者

那应该如何更改?
2016-01-13 回复 有任何疑惑可以回复我~
#2

慕盖茨8599025 提问者

谢谢了,我终于知道那里错了
2016-01-13 回复 有任何疑惑可以回复我~
#3

伊望岁月 回复 慕盖茨8599025 提问者

把里面的setInterval("back1()",1000)去掉,外面的setTimeout("back1()",1000)改为setInterval("back1()",1000)
2016-01-13 回复 有任何疑惑可以回复我~

在代码上面 back1中 不应该用setInterval 而是应该用setTimeout 这样就会正常了

0 回复 有任何疑惑可以回复我~

var num = 10;

clearInterval(timer);

function back1(){

var num2 = document.getElementById("num1");

num2.innerHTML = num;

   num--;

   if(num==0){

    goBack();

   }

}

var timer = setInterval("back1()",1000);

function goBack(){

window.history.go(-1);

}


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我的速度是翻倍的在算的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信