为什么数字从5跳到0后一直减到负数,不跳转网页

来源:8-17 编程练习

天地一号217

2016-04-16 20:54

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

   <h1> 操作成功</h1>

   <b id="seconds">5</b>

   <span>秒后返回主页</span>

   <a href="javascript:goback();">返回</a>

 

  <script type="text/javascript"> 

  var num=document.getElementById("seconds").innerHTML

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

  function count(){

      num--;

      document.getElementById("seconds").innerHTML=num;

      if(num==0) { location.assign="www.imooc.com";}

  } 

   setInterval(count(),100);

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

  function goback()

  {

      history.back();

  }

   


写回答 关注

4回答

  • qq_覗水翛_0
    2016-04-21 14:07:55

    哥们你这代码有几个问题:

    1、你的源码中<script>标签没有闭合;

    2、你的代码逻辑有问题,页面加载后会执行计时器,计时器会调用count函数,每过一秒页面调用一次,执行一次,而每次执行时num都会减1,所以会导致count一直减下去,然后再去判断num的值,你应该在调用count函数开始的时候就判断num是否为0,否则进行后面的操作,页面加载流程要搞清楚。附上改过的代码,可以运行。

    3、你没有认真看答案啊,都说了location.assign="http://www.imooc.com"这种写法是错误的,要写成location.assign(http://www.imooc.com)才对!!!http://img.mukewang.com/57186e2f0001488604540247.jpg

  • qq_覗水翛_0
    2016-04-17 00:30:39

          1、  setInterval("fun()",1000);//全局作用域下正常执行

            setInterval(fun(),1000); //调用函数正常,setInterval调用出错

            setInterval(fun,1000);  //正确

    2、打开新界面同2L,就像你用一个函数,xxx.(),是在()里面传参数,而不是写成xxx = ();

    天地一号21...

    var num=document.getElementById("seconds").innerHTML; //获取显示秒数的元素,通过定时器来更改秒数。 function count(){ num--; document.getElementById("seconds").innerHTML=num; if(num==0) { location.assign="http://www.imooc.com";} } setInterval("count()",1000); 改了后还是没跳转到网页,是还有什么问题吗?

    2016-04-21 13:45:29

    共 1 条回复 >

  • lqzh
    2016-04-16 22:16:53

    setInterval("count()",1000) 或者 setInterval(count,1000)


    location.assign是函数,不能直接赋值 而应该代入实参

    location.assign("http://www.imooc.com") 

    lqzh 回复天地一号21...

    location.assign=XXX 是错的。 原因看之前的回复

    2016-04-21 14:34:33

    共 2 条回复 >

  • ChenBugBug
    2016-04-16 22:00:38

    把这句setInterval(count(),100);
    改成:setInterval(count,1000);或setInterval("count()",1000);试试
    原因:之前介绍setInterval那一节提到:
    “交互时间:以毫秒计(1s=1000ms)。
    调用函数格式(假设有一个clock()函数):
    setInterval("clock()",1000)
    或setInterval(clock,1000) ”

    天地一号21...

    var num=document.getElementById("seconds").innerHTML; //获取显示秒数的元素,通过定时器来更改秒数。 function count(){ num--; document.getElementById("seconds").innerHTML=num; if(num==0) { location.assign="http://www.imooc.com";} } setInterval("count()",1000); 改了后还是没跳转到网页,是还有什么问题吗?

    2016-04-21 13:42:45

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题