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

求问大神,为什么我这么写,点了stop按钮再点start按钮再点stop按钮就无法停止了?查出来错误是吧加粗部分的var去掉,我就想不通,不去掉重新定义一个i难道clearInterval(i)就识别不出i了吗?求解释

<!DOCTYPE HTML>

<html>

<head>

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

<title>计时器</title>

<script type="text/javascript">

   function clock(){

      var time=new Date();                

      document.getElementById("clock").value = time;

   }


   var i=setInterval("clock()",100);


   function mystart(){

   var i=setInterval("clock()",100)

   }  

</script>

</head>

<body>

  <form>

    <input type="text" id="clock" size="50"  />

    <input type="button" value="Stop" onclick="clearInterval(i)" />

  <input type="button" value="start" onclick="mystart()" />

  </form>

</body>

</html>


正在回答

4 回答

<!DOCTYPE HTML>

<html>

<head>

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

<title>计时器</title>

<script type="text/javascript">

   function clock(){

      var time=new Date();                

      document.getElementById("clock").value = time;

   }

  var pd = true ;

 var i=setInterval("clock()",100);

   function mystart(){

   clearInterval(i);

   i=setInterval("clock()",100);

   }  

   function mystop(){

    clearInterval(i);

   }

</script>

</head>

<body>

  <form>

    <input type="text" id="clock" size="50"  />

    <input type="button" value="Stop" onclick="mystop()" />

  <input type="button" value="start" onclick="mystart()" />

  </form>

</body>

</html>

用你的思路重做了一下 菜鸟一个 希望能互相探讨一下

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

其实”重新启动“里的i和前面的i应该是一个量,因为你”重新启动“里i的前面有个var,就当成你重新申请了一个变量i(而其实前面定义过i,那前面那个变量就自动清掉了),系统就认为前后是两个不同的量了,而前面的i刚才被清掉了,所以再次点停止的时候(这时本应该去调取前面i的值了,却发现i被清了),失效了

我是这么理解的,看是否是这样

0 回复 有任何疑惑可以回复我~
mystart()中的变量直接引用全局变量

function mystart(){
     i=setInterval("clock()",100);
}

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

从新声明的话那么   i就是个局部变量  未声明就是全局变量!

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

举报

0/150
提交
取消

求问大神,为什么我这么写,点了stop按钮再点start按钮再点stop按钮就无法停止了?查出来错误是吧加粗部分的var去掉,我就想不通,不去掉重新定义一个i难道clearInterval(i)就识别不出i了吗?求解释

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