“document.getElementById”是否破坏函数
Does `document.getElementById` break the function?
所以我正在使用pomodoro计时器,无法弄清楚我的JS做错了什么。项目概述如下:http://codepen.io/Ohillio/pen/wMoNWy
但我遇到问题的代码的具体部分是:
// global variables
var min = 0;
var sec = 0;
function tick() {
alert("Counter Started");
sec = 59;
min--;
document.getElementById("timer").innerHTML = min + ":" + sec;
do {
sec--
document.getElementById("timer").innerHTML = min + ":" + sec;
setTimeout(donothing,500);
}
while (sec != 0);
}
问题是,它似乎在第一次通过后就结束了功能。我希望秒数递减到0,但现在它的计算值仅为58。
document.getElementById
会破坏功能吗?
使用setInterval
可能是更好的解决方案。一旦达到0,它将更准确,也更容易短路。此外,我更喜欢将总时间保持为秒,并且只使用分钟进行显示。我整理了一个例子供你复习。
<script>
var interval;
var totalSeconds = 1500;
function tick() {
totalSeconds--;
min = Math.floor(totalSeconds / 60);
sec = totalSeconds % 60;
document.getElementById('timer').innerHTML = min + ':' + sec;
if (0 >= totalSeconds) {
clearInterval(interval);
}
}
interval = setInterval(tick, 1000);
</script>
希望这能有所帮助,祝你好运!
这也应该起作用,有1位数的秒格式修复:
var min = 1;
var sec = 30;
function tick() {
document.getElementById("timer").innerHTML = min + ":" + (sec.toString().length < 2 ? '0' : '') + sec;
if(sec === 0 && min > 0) {
min--;
sec = 59;
setTimeout(tick, 500);
} else if (sec > 0) {
sec--;
setTimeout(tick, 500);
} else {
alert("Done!");
}
}
alert("Counter Started");
tick();
相关文章:
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 如何检查函数是否将运行或可用
- JavaScript尾部调用中的函数是否经过优化
- 当提供函数名称时,检查函数是否存在于同一作用域中
- 是否可以测试javascript函数是否是构造函数
- JavaScript-确定数学函数是否为无穷大
- jQuery-有没有一种方法可以测试函数是否异步
- 作用域问题-此函数是否形成闭包-JavaScript
- 如何检查该函数是否从外部js文件调用
- 什么更快?运行空函数或检查函数是否未定义
- 箭头函数是否像命名函数一样进行了优化
- JavaScript setInterval函数:是否存在错误
- 如何判断被调用的函数是否源自javascript中的点击事件
- jquery remove函数是否也删除了敲除绑定
- 如何使用jsoup检测内联js函数?我基本上想检查内联函数是否存在
- 当执行进入页面时,JavaScript history.back()函数是否生成HttpRequest
- 在动态更改数据之后(在ajax调用之后)检查函数是否存在
- 检查函数是否属于javascript中的function类型
- 从对象中调用的函数是否可以访问该对象的作用域