我基本上希望页面以秒为单位用户输入时间。
之后我希望倒计时在用户按下"开始"按键 "暂停"按下暂停按钮时。 还有一个重置按钮,以便用户可以从头开始倒计时。
这是我到目前为止所得到的:
<script>
var CCOUNT;
$(document).ready(function(){
$('#btnct').click(function() {
CCOUNT = $('#seconds').val();
cdreset();
});
var t, count;
function cddisplay() {
document.getElementById('timespan').innerHTML = count;
};
function countdown() {
// starts countdown
cddisplay();
if (count == 0) {
// time is up
} else {
count--;
t = setTimeout("countdown()", 1000);
}
};
function cdpause() {
// pauses countdown
clearTimeout(t);
};
function cdreset() {
// resets countdown
cdpause();
count = CCOUNT;
cddisplay();
};
</script>
<body>
<form id="frm">
Seconds:
<input type="text" id="seconds" name="seconds" value="0" size="2" maxlength="2"/>
<br/>
<input type="button" id="btnct" value="Input"/>
</form>
<span id="timespan"></span>
<input type="button" value="Start" onclick="countdown()">
<input type="button" value="Stop" onclick="cdpause()">
<input type="button" value="Reset" onclick="cdreset()">
</body>`
但是它不起作用,当我省略了用户输入部分并刚刚初始化了CCOUNT时,它工作了。但我希望页面能够接受用户输入。
答案 0 :(得分:2)
这有效:http://jsfiddle.net/robschmuecker/XZXLk/
使用jQuery的Javascript
var CCOUNT;
$(document).ready(function () {
$('#btnct').click(function () {
CCOUNT = $('#seconds').val();
cdreset();
});
});
var t, count;
function cddisplay() {
document.getElementById('timespan').innerHTML = count;
}
function countdown() {
// starts countdown
cddisplay();
if (count === 0) {
// time is up
} else {
count--;
t = setTimeout(countdown, 1000);
}
}
function cdpause() {
// pauses countdown
clearTimeout(t);
}
function cdreset() {
// resets countdown
cdpause();
count = CCOUNT;
cddisplay();
}
HTML:
<form id="frm">Seconds:
<input type="text" id="seconds" name="seconds" value="0" size="2" maxlength="2" />
<br/>
<input type="button" id="btnct" value="Input" />
</form>
<span id="timespan"></span>
<input type="button" value="Start" onclick="countdown()">
<input type="button" value="Stop" onclick="cdpause()">
<input type="button" value="Reset" onclick="cdreset()">