猿问

setInterval()的问题

<!DOCTYPE html>

<html>

 <head>

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

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

 <style type="text/css">

 h2{margin-left:20px}

 p{margin-left:50px}

 span{margin-left:5px;margin-right:5px;}

 </style>

 </head>

 <body>

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

  <h2>操作成功</h2>

  <p>将于<span id="time">10</span>秒后返回主页或

   <a href=javascript:window.history.back()>返回</a>

  </p>

  <script type="text/javascript">

   

  

  setInterval(function time()

  {

   var time_1;

   time_1=parseInt(document.getElementById("time").innerHTML);

   if(time_1==0)

   {

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

    }

 else{

  time_1=time_1-1;

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

   }

   }

   ,1000)

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

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

   

 </script> 

</body>

</html>

 按照老师的答案我将function嵌套在setInterval内成功了,但是为什么我以前在上面或下面重新写setInterval("time()"
,1000)后只能调用函数一次?

慕小庄
浏览 2027回答 5
5回答

柠檬酸钠

传给setInterval的应该是一个匿名函数,所以本段有语法错误,正确的写法:function time () {   // do something } setInterval("time()",50); // 或者 setInterval(time,50);当然你可以这么写setInterval(function () {     // do something })是匿名函数,没有函数名的

肥仔汇

问题应该出在window.setInterval(time,1000);这里引用function不用加括号的完整代码如下<!DOCTYPE html>   <html>    <head>     <title>浏览器对象</title>       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>       <style type="text/css">    h2{margin-left:20px}    p{margin-left:50px}    span{margin-left:5px;margin-right:5px;}    </style>    </head>    <body>     <!--先编写好网页布局-->     <h2>操作成功</h2>     <p>将于<span id="time">10</span>秒后返回主页或      <a href=javascript:window.history.back()>返回</a>     </p>     <script type="text/javascript">         function time(){      var time_1;      time_1=parseInt(document.getElementById("time").innerHTML);      if(time_1==0)      {       window.location.href="http://www.imooc.com/";       }    else{     time_1=time_1-1;     document.getElementById("time").innerHTML=time_1;      }      }     window.setInterval(time,1000);      //获取显示秒数的元素,通过定时器来更改秒数。      //通过window的location和history对象来控制网页的跳转。           </script>    </body>   </html>

o0隐形人0o

setInterval(show1,1000);setInterval(“show1()”,1000);给你两种写法

ahao430

setInterval(time,1000)

慕小庄

<!DOCTYPE html> <html>  <head>   <title>浏览器对象</title>     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>     <style type="text/css">  h2{margin-left:20px}  p{margin-left:50px}  span{margin-left:5px;margin-right:5px;}  </style>  </head>  <body>   <!--先编写好网页布局-->   <h2>操作成功</h2>   <p>将于<span id="time">10</span>秒后返回主页或    <a href=javascript:window.history.back()>返回</a>   </p>   <script type="text/javascript">          setInterval(time(),1000);   function time()   {    var time_1;    time_1=parseInt(document.getElementById("time").innerHTML);    if(time_1==0)    {     window.location.href=" http://www.imooc.com/ ";     }  else{   time_1=time_1-1;   document.getElementById("time").innerHTML=time_1;    }    }        //获取显示秒数的元素,通过定时器来更改秒数。    //通过window的location和history对象来控制网页的跳转。      </script>  </body> </html>问题代码
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答