<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>编程练习8</title> </head> <body> <p> <b id="seconds">5</b>秒后进入新界面 <a href="javascript:goBack();">返回</a> </p> <form> <input type="button" value="取消倒计时" onclick="quxiao()"> </form> <script type = "text/javascript"> function jisi(){ var sec = document.getElementById("seconds"); var i = 5; var timer = setInterval(function(){ i--; sec.innerHTML = i; if(i==1){ window.location.href = "http://www.imooc.com/"; } },1000); } jisi(); function quxiao(){ clearInterval(timer); } </script> <!--发现如果建立函数jisi则不能建立函数quxiao了, 建立函数就只能使用onclick="clearInterval(timer)" 使用quxiao函数的话就必须不能给上面的代码建立成一个jisi函数 --> </body> </html>
你把timer的定义写在jishi函数外面,因为这是一个函数作用域,别的函数获取不到这个变量的
var timer; function jisi(){ var sec = document.getElementById("seconds"); var i = 5; timer = setInterval(function(){ i--; sec.innerHTML = i; if(i==1){ window.location.href = "http://www.imooc.com/"; } },1000); } jisi(); function quxiao(){ clearInterval(timer); }