qq_巴卡_0
2017-03-19 09:51
<!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 ms() {
i = setInterval("clock()",100);
}
</script>
</head>
<body>
<form>
<input type="text" id="clock" size="50" style="background:#000;color:#0f0;width:100%" />
<input type="button" value="start" onclick="ms()" />
<input type="button" value="Stop" onclick="clearInterval(i)" />
</form>
</body>
</html>
因为你每次 i = setInterval(clock,1000) 之后,i 都只是保存最后一个计时器的变量,你按了多次 start, 再按 stop ,只能清除掉这最后保存的计时器,之前的计时器没有清除掉,也就停不下来了。
解决的方法是,在 st() 这个函数里的最前面,加一句 clearInterval(i);
出处:http://www.imooc.com/qadetail/194899
我就奇怪了,我试了点start两次后就stop不下来了
你这个应该可以正常运行啊,我这么写就可以
我试了一下,没有错,
我一开始带着自动运行写的,有问题;但是提交后刷新了一下,再试了试又没有出问题了
写的有问题 方法不应该那么写
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题