请问为什么这样停不下来?求指点。。。。

来源:8-6 取消计时器clearTimeout()

123woscc

2015-07-23 22:56

var num=0;
	function startCount()
	{
		document.getElementById("second").value=num;
		num=num+1;
		var i=setTimeout("startCount()",1000);
	}
 function stopCount(){
  clearTimeout(i);

如上,如果我将  var i  写在函数内执行时停不下来,但是若将var i写在函数外,像这样:

var num=0;

var i;

function startCount()

{

document.getElementById("second").value=num;

num=num+1;

i=setTimeout("startCount()",1000);

}

 function stopCount(){

  clearTimeout(i);

  }

则可以运行,这是为什么?

写回答 关注

1回答

  • 清风在语中行走
    2015-07-23 23:17:20
    1. 将  var i  写在函数内是局部变量,i只对该函数内起作用,也就是只起一个局部变量的作用,所以它只有setTimeout的作用,外部的函数的clearTimeout对i无调用的作用。

    2. 若将var i写在函数外,它就是一个全局变量。

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题