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

想要实现当计时器到0的时候不在继续进行循环,使其出现负数。 为什么我的代码实现不了?

<!DOCTYPE html>

<html>

 <head>

  <title>浏览器对象</title>  

  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>   

 </head>

 <body>

  <!--先编写好网页布局-->

  <h1>操作成功</h1>

  <span id="time">5</span><span>秒后会到主页<a href="javascript:back()">返回</a></span>

  

 

  <script type="text/javascript">  

    var timer=document.getElementById("time").innerHTML;

  //获取显示秒数的元素,通过定时器来更改秒数。

  function change(){

      timer--;

      document.getElementById("time").innerHTML=timer;

      if(timer==0){

         var i=setInterval("change()",1000);

          clearInterval(i);

          window.open("http://www.imooc.com/");

      }

         }

    setInterval("change()",1000);

    function back(){

        window.history.back()

        }

     

   //通过window的location和history对象来控制网页的跳转。

   

 </script> 

</body>

</html>



正在回答

2 回答

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>
 </head>
 <body>
  <!--先编写好网页布局-->
  <h1>操作成功</h1>
  <span id="time">5</span><span>秒后会到主页<a href="javascript:back()">返回</a></span>


  <script type="text/javascript">
    var timer=document.getElementById("time").innerHTML;
  //获取显示秒数的元素,通过定时器来更改秒数。

  function change(){
      timer--;
      document.getElementById("time").innerHTML=timer;
      if(timer==0){
          clearInterval(i);
          window.open("http://www.imooc.com/");
      }
  }
    i = setInterval("change()",1000);
    function back(){
        window.history.back()
    }

   //通过window的location和history对象来控制网页的跳转。

 </script>
</body>
</html>


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

qq_yEs先生_53591812 提问者

你的是可以的,但是没有明白 这样第25行就没有 setInterval("change()",1000);触发计时器函数了但是为什么还能实现?
2016-07-31 回复 有任何疑惑可以回复我~
#2

JKol

setInterval("change()",1000);返回一个句柄,存在变量i中,然后通过clearInterval( i );将这个计时器取消
2016-08-15 回复 有任何疑惑可以回复我~

    var timer = document.getElementById("time").innerHTML;

        //获取显示秒数的元素,通过定时器来更改秒数。

        function change() {

            timer--;

            document.getElementById("time").innerHTML = timer;

            if (timer == 0) {

                //var i = setInterval("change()", 1000);

                clearInterval(obj);

                window.open("http://www.imooc.com/");

            }

        }

        var obj = setInterval("change()", 1000);

        function back() {

            window.history.back()

        }


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

qq_yEs先生_53591812 提问者

一样的 还是会循环到负数
2016-07-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想要实现当计时器到0的时候不在继续进行循环,使其出现负数。 为什么我的代码实现不了?

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