bestlover
2015-07-06 16:51
有bug啊,怎么才能让“button"只能执行一次,当持续点击button,则不是按照一秒执行一次,而是,,,
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
var num=0;
var i;
function startCount(){
document.getElementById('count').value=num;
num=num+1;
i=setTimeout("startCount()",1000);
}
function stopCount(){
clearTimeout(i);
}
</script>
</head>
<body>
<form>
<input type="text" id="count" />
<input type="button" value="Start" onclick="startCount()" />
<input type="button" value="Stop" onclick="stopCount()" />
</form>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
var num=0;
var i;
function startCount(){
document.getElementById('count').value=num;
num=num+1;
i=setTimeout("startCount()",1000);
document.getElementById("Start").disabled=true;
}
function stopCount(){
clearTimeout(i);
document.getElementById("count").value="";
document.getElementById("Start").disabled=false;
}
</script>
</head>
<body>
<form>
<input type="text" id="count" />
<input type="button" value="Start" id="Start" onclick="startCount()" />
<input type="button" value="Stop" onclick="stopCount()" />
</form>
</body>
</html>
下划线的部分是我和你不同的部分,我给开始按钮加了一个ID,然后通过在函数中加了三个样式,实现了开始按钮点击一次不可用,停止按钮点击后开始按钮回复,文本框清零。
我也隐隐约约发现了这个问题,你说的是按多次start的话计时会变快是吧。判断一下就行了,num=0的话就执行函数里面的内容。但问题根本原因是什么,这个就不太清楚。难道是多线程?OTZ
function stopCount(){
num=0;
clearTimeout(i);
}
加一句num=0;
var gg=true;
function startCount(){
document.getElementById('count').value=num;
num=num+1;
if(gg){
gg=false;
i=setTimeout(function(){
startCount();
gg=true;
},1000);
}
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题