【发布时间】:2015-05-16 03:05:06
【问题描述】:
所以我一直在用 javascript 创建一个计时器。它从五分钟开始倒计时,并在一定的时间间隔内改变颜色。我创建了开始时间、停止时间和重置时间的按钮。但是,我注意到当我多次单击“开始”按钮时,它会增加减去的时间量。所以一按=“-1”,二按=“-2”,三按=“-3”,等等。我希望在单击后禁用该按钮。我已经想出了如何禁用它,但是一旦它被禁用,我需要在单击“重置”按钮后再次启用它。
因此,当有人最初按下“开始”时,该按钮被禁用。当用户按下“重置”时,“开始”按钮再次启用。基本上只需要弄清楚如何将其重置为原始功能。
这是我的 Javascript 代码:
var seconds = 300;
var countdownTimer;
var colorChange;
colorChange = ['#7ed473', '#fff194', '#fa8283']
function secondPassed(){
var minutes = Math.floor(seconds/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
if (seconds == 0) {
clearInterval(countdownTimer);
}
}
function changeColor(){
if (seconds <= 300 && seconds > 90) {
document.body.style.background = colorChange[0];
}
else if (seconds <= 90 && seconds > 30) {
document.body.style.background = colorChange[1];
}
else if(seconds <= 30 && seconds >= 0){
document.body.style.background = colorChange[2];
}
}
function countdown(start){
secondPassed();
if (seconds != 0) {
seconds --;
countdownTimer = setTimeout('countdown()', 1000);
changeColor();
start.disabled = true;
}
}
function cdpause() {
// pauses countdown
clearTimeout(countdownTimer);
};
function cdreset(startButton) {
// resets countdown
cdpause();
secondPassed();
};
#countdown {
font-size: 2em;
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="newTicket2.0.css">
<script src = "Timer2.js">
</script>
</head>
<body onload = "cdreset()">
<span id="countdown" class="timer"></span>
<input type="button" value="Start" onclick="countdown(this)">
<input type="button" value="Stop" onclick="cdpause()">
<input type="button" value="Reset" onclick="cdreset(seconds = 300)">
</body>
</html>
我尝试在 cdreset() 函数中添加 start.disabled = false,希望它只会重置按钮。但这没有用。尝试倒计时(开始);进入 cdreset() 并且这也不起作用。基本上撞墙了。重置一切都不是那么难。哈哈。任何帮助或指导将不胜感激。
【问题讨论】:
-
移除禁用属性 $('#start').removeAttr('disabled');
标签: javascript jquery html css