这个clearInterval(tmp)为什么不能终止函数的重复调用

hinada99 2010-07-23 11:38:00
想实现的功能如下,
页面上有“显示时间”和“时间静止”两个按钮。
单击“显示时间”,状态栏动态的显示时间。单击“时间静止”,状态栏的时间不再变化。
下面的代码问题是,单击“时间静止“时,状态栏时间不会停,这个该怎么改?

<html>
<script type="text/javascript">

var tmp
function show()
{
var d= new Date();
var k=d.getHours()+ ":" +d.getMinutes()+":" +d.getSeconds()
window.status=k;

tmp=setInterval("show()",1000)

}

function stop()
{
clearInterval(tmp);
}
</script>

<body >

<input type="button" id="t1" value="显示时间" onclick="show()">
<input type="button" id="t2" value="时间静止" onclick="stop()">

</body>

</html>
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaxueq 2010-07-23
  • 打赏
  • 举报
回复
tmp=setInterval("show()",1000) 改成 tmp=setTimeout("show()",1000);

或是
tmp=setInterval("show()",1000) 写到show函数外面
wang_zhilin 2010-07-23
  • 打赏
  • 举报
回复
setInterval 是不断的的执行,那样很难停止的。。。
wang_zhilin 2010-07-23
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>

</head>

<script type="text/javascript">

var tmp = -1;

function show()
{
var d= new Date();
var k=d.getHours()+ ":" +d.getMinutes()+":" +d.getSeconds()
window.status=k;

tmp = setTimeout("show()",1000)

}

function stop()
{
clearTimeout(tmp);
}
</script>

<body >

<input type="button" id="t1" value="显示时间" onclick="show()">
<input type="button" id="t2" value="时间静止" onclick="stop()">

</body>
</html>
hoojo 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hinada99 的回复:]

呵 只要把tmp=setInterval("show()",1000)拿到函数以外的脚本标签里定义就行了
[/Quote]
全局,tem
hinada99 2010-07-23
  • 打赏
  • 举报
回复
呵 只要把tmp=setInterval("show()",1000)拿到函数以外的脚本标签里定义就行了
hinada99 2010-07-23
  • 打赏
  • 举报
回复
其实,自己是最先给出正确答案的,分还是要给你们 这个。。。
地狱羔羊 2010-07-23
  • 打赏
  • 举报
回复

function show()
{
var d= new Date();
var k=d.getHours()+ ":" +d.getMinutes()+":" +d.getSeconds()
window.status=k;

tmp=setInterval("show()",1000)

}

..你这个是死循环啊..每次调用show.都重新定义了一个setInterval..
把setInterval放到函数show外面去

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧