问答详情
源自:8-6 取消计时器clearTimeout()

var i=setTimeout中的i为什么在函数中定义不起作用,要在函数外定义

var num=0;

function rec(){

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

num+=1;

    var i=setTimeout(rec,300);

}

setTimeout(rec,300);

</script>

</head>

<body>

<input type="text" id="txt">

<input type="button" value="stop" onclick="clearTimeout(i)"/>

这样不行

var num=0,i;

function rec(){

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

num+=1;

    i=setTimeout(rec,300);

}

setTimeout(rec,300);

</script>

</head>

<body>

<input type="text" id="txt">

<input type="button" value="stop" onclick="clearTimeout(i)"/>

这样就可以了,为什么

提问者:qq_浮世_4 2016-11-18 11:59

个回答

  • 慕粉3116392
    2017-01-24 10:35:42

    你把var  i定义在一个函数内时这个变量就是个局部变量。局部变量只能是函数内调用。要想被其他的函数调用就必须把他设置成全局变量

  • 慕盖茨9219292
    2016-11-18 13:42:14

    作用域