為啥我這個stop 按鈕只有第一次有效 而start 一直有效
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>定時器</title>
<style type="text/css">
#clock{background:red #339border:2px dashed blue }
h1{text-align:center }
h1{color:red}
.aa{color:blue}
</style>
</head>
<body>
<h1>顯示時間</h1>
<script type="text/javascript">
?// var attime;
? function clock(){
var time=new Date(); ? ? ? ? ?
? ? attime=time.getHours()+":"+time.getMinutes()+":"+time.getSeconds();
? ? document.getElementById("clock").value = attime;
?}
?var i=setInterval(clock,1000);
?function b()
?{var i=setInterval(clock,1000)}
?function c()
?{
var cc=clearInterval(i,1000)
}
? </script>
<form>
<input type="button" id="clock" size="50" ?value="clock()"/>
</form>
<p class="aa">我有一所房子,面朝大海春暖花開。</p>
<p>喂馬 劈柴 周游世界</p>
<input type="button" value="start" onClick="b()">
<input type="button" value="stop" onClick="c()">
</body>
</html>
2018-03-25
?var?i=setInterval(clock,1000); ?function?b() ?{var?i=setInterval(clock,1000)} ?function?c() ?{ var?cc=clearInterval(i,1000) } 這段里面你的返回的i你定義了兩次,一個在b()外,一個在b內,這樣的話,就是定義兩個i,而不是共用一個,你只是stop 了b()外面的那一個,里面的那個你無法去停止,因為c()里的i不能調用b()里面的i,你可以修改代碼,把b()里面的var去掉就好了2017-09-05
大神寫的,很好用
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計時器</title>
<script type="text/javascript">
? var num=0;
? var i;
? function startCount(){
? ? document.getElementById('count').value=num;
? ? num=num+1;
? ? i=setTimeout("startCount()",1000);
? }
? flag=0;
? function stopCount(){
? ? ? if(flag==0){
? ? ? ? ? flag=1;
? ? ? ? ? document.getElementById('but').value="Stop";
? ? ? startCount();
? ? ? }else{
? ? ? ? ? clearTimeout(i);
? ? ? ? ? flag=0;
? ? ? ? ? document.getElementById('but').value="Start";
? ? ? }
? }
? function ce(){
? ? ? if(flag==0){
? ? ? document.getElementById('count').value="清除完畢!";
? ? ? num=0;
? ? ? setTimeout("document.getElementById('count').value=num",1000);
? ? ? }
? }
</script>
</head>
<body>
? <form>
? ? <input type="text" id="count" />
? ? <input type="button" id="but" value="Start" onclick="stopCount()" />
? ? <input type="button" value="Clear" ?onclick="ce()" />
? </form>
</body>
</html>
2017-08-06
你有兩個設定計時器的方法而且返回值都賦給了i第一個是一開始啟動的,第二個是一直在執行的,你需要把function b里的變量定義到function b函數的上邊換一個變量名,就是這樣
var?result; var?i?=?setInterval(clock,1000); function?b() { ????result?=?setInterval(clock,1000); } function?c() { ????clearInterval(result,1000); }2017-08-03
var i=setInterval('clock()',1000);