制作倒计时函数来解析html中的新值
Make countdown function to parse the new value from html
我正在制作一个计时器,在我通过点击按钮开始主倒计时功能之前,我希望能够选择休息多久将持续。我正在用increebreak()和reducebreak()函数改变html,但它不会"看到"新值,只是从3开始计数,这是html(breakTime)中的默认值。main函数工作正常,解析正常
我猜我把范围弄乱了,但我想不出来。谢谢你的建议
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1 id="num">1 min</h1>
<div id="status"></div>
<button onclick='countDown(secs, "status")'>Start countdown</button>
<button onclick='increaseNumber()'>+</button>
<button onclick='decreaseNumber()'>-</button>
<h3 id="breakTime">3 min</h3>
<button onclick='increaseBreak()'>+</button>
<button onclick='decreaseBreak()'>-</button>
<h2 id="breakOutput"></h2>
<script src="script.js"></script>
</body>
</html>
var num = document.getElementById("num").innerHTML;
var secs = parseInt(num);
var takeBreak = document.getElementById("breakTime").innerHTML;
var breakTime = parseInt(takeBreak);
function countDown(secs, elem) {
var element = document.getElementById(elem);
//var secs = parseInt(num);
element.innerHTML = "Please wait for "+secs+" minutes";
var second = 0;
var timer = setInterval(function(){
var extraZero = second < 10 ? '0' : '';
document.getElementById("num").innerHTML = secs + ":" + extraZero + second;
if (second-- === 0) {
second = 59;
if (secs-- === 0){
clearInterval(timer);
element.innerHTML = '<h2>Countdown complete!</h2>';
element.innerHTML += '<h4>Take a break</h4>';
//when countDown is done, start a new function for Break countdown
startBreak();
}
}
}, 10);
}
function startBreak(breakTime, breakOutput){
var breakOutput = document.getElementById("breakOutput");
var breakTime = parseInt(takeBreak);
var second = 0;
var shortTimer = setInterval(function(){
var extraZero = second < 10 ? '0' : '';
document.getElementById("breakOutput").innerHTML = breakTime + ":" + extraZero + second;
if (second-- === 0) {
second = 59;
if (breakTime-- === 0){
clearInterval(shortTimer);
breakOutput.innerHTML = '<h2>Break done!</h2>';
//alert("Break done!");
//location.reload();
}
}
}, 10);
}
function increaseNumber() {
secs += 1;
document.getElementById("num").innerHTML = secs + ' min';
}
function decreaseNumber() {
if(secs >= 10) {
secs -= 1;
document.getElementById("num").innerHTML = secs + ' min';
}
}
function increaseBreak() {
breakTime += 1;
document.getElementById("breakTime").innerHTML = breakTime;
//I want to inject this value as a new breakTime for startBreak() function
takeBreak = breakTime; //referenced global variable inside the function
}
function decreaseBreak() {
if(breakTime >= 2) {
breakTime -= 1;
document.getElementById("breakTime").innerHTML = breakTime;
}
}
我已经在函数内引用了全局变量(takeBreak = breakTime;),然后由increenumber函数更新它。这个stackoverflow的答案有帮助:
如何更改函数内部全局变量的值
相关文章:
- 访问html元素值javascript
- php函数的ajax html$_POST值返回null
- 清理HTML输入值
- 使用JQuery通过下拉菜单筛选HTML表值
- $$hashKey在Angular中push()新对象时未生成新值
- 使用JavaScript在select字段中使用optgroup设置html选项值
- text()将保留旧值,但在DOM上显示新值
- Knockout Force在设置新值时通知订阅者可观察到的值
- 更改HTML按钮值的颜色,其中值来自调用Javascript的onclick
- 如何使用Angular 2设置HTML选择值
- 如何将 html 属性值添加到 javascript 变量中
- Javascript / JQuery循环访问已发布的ajax数据字符串以为其分配新值
- 为nouislider设置新值已达到最大数量
- 通过 Monoandroid 访问 HTML 元素值(Webview)
- 获取网页html元素值,而无需使用JavaScript在新窗口或新选项卡中打开页面
- 在javascript上使用onClick增加变量值,并在HTML表单上显示新值
- 制作倒计时函数来解析html中的新值
- 使用Javascript在新窗中将HTML输入值传递给表单操作
- 如何在键事件处理程序中获得HTML文本元素的新值,也适用于特殊键
- 如何在点击事件修改 HTML 输入后获取它的新值