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

i=setInterval()进行倒计时设置时为什么不定义这个i就不能进行倒计时?

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>   
 </head>
 <body>
  <!--先编写好网页布局-->
  <h2>操作成功</h2>
  <div>
      <span id="second">5</span>
      秒后回到主页 <a href="javascript:window.back()">返回</a>
      </div>
 
  <script type="text/javascript">  
 
   //获取显示秒数的元素,通过定时器来更改秒数。
    var num=document.getElementById("second").innerHTML;
    function timechange(){
        if(num>=1){
            document.getElementById("second").innerHTML=num--;
        }
        else{
            window.location.assign("https://imooc.com/");
        }
    }
    i=setInterval("timechange()",1000);
   //通过window的location和history对象来控制网页的跳转。
 </script>
</body>
</html>


===========

上面这个编程练习我尝试将【 i=setInterval("timechange()",1000);】改成

【setInterval("timechange()",1000);】

这个倒计时就无法进行,这是为什么啊?这个i在整个代码里并没有明确的调用啊,它出了存储setInterval的地址外有什么作用吗?看了好多人的提问和回答还是不是很明白,有大佬解惑吗?

=============

更新,我后来可以运行了,跟i没有关系,i在这里只是个没用到的变量


正在回答

4 回答

【setInterval("timechange()",1000);】或者【setInterval(timechange,1000);】是正确写法。

可能你之前写成【setInterval(timechange(),1000);】这样子了,我也找了很久写成这个样子

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

http://img1.sycdn.imooc.com//5ed610ae0001dd9006740767.jpg

试着样子吗,我是可以运行的。

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

我觉可以写出倒计时,只要利用推迟时间轴的的方式


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

.....

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

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

进入课程

i=setInterval()进行倒计时设置时为什么不定义这个i就不能进行倒计时?

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