1.发现这样写连时间都不会有
<script> var flag = 0; function startTime(){ clearTimeout(t); var today=new Date(); var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds();// 在小于10的数字前加一个‘0’ m=checkTime(m); s=checkTime(s); document.getElementById('txt').innerHTML=h+":"+m+":"+s; t=setTimeout(function(){startTime()},1000); } function checkTime(i){ if (i<10){ i="0" + i; } return i; } </script>
2.而这样子的话会停,但是会显示时间
function startTime(){ var today=new Date(); var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds();// 在小于10的数字前加一个‘0’ m=checkTime(m); s=checkTime(s); document.getElementById('txt').innerHTML=h+":"+m+":"+s; clearTimeout(t); t=setTimeout(function(){startTime()},1000); }
3.发现这样子的话时间不会停但是,cleartimeout会执行
<script> var flag = 0; function startTime(){ var today=new Date(); var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds();// 在小于10的数字前加一个‘0’ m=checkTime(m); s=checkTime(s); document.getElementById('txt').innerHTML=h+":"+m+":"+s; t=setTimeout(function(){startTime()},1000); } function checkTime(i){ if (i<10){ i="0" + i; if (flag > 2 ) clearTimeout(t); flag += 1; } return i; } </script>
4.结合3,这样写的话会停止执行代码
<script> var flag = 0; function startTime(){ t=setTimeout(function(){startTime()},1000); var today=new Date(); var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds();// 在小于10的数字前加一个‘0’ m=checkTime(m); s=checkTime(s); document.getElementById('txt').innerHTML=h+":"+m+":"+s; }
以上问题很是疑惑,希望能随着知识的增加而解决吧
转载于:https://www.cnblogs.com/WildSky/p/11025211.html
今天的文章关于js里cleartimeout的疑惑分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9101.html