嗨,我是JS和jQuery的新手,我有一个简单的倒数计时器问题。
当我在输入中键入一些值时,它会在我的倒计时器中转换为NaN(而不是数字)。
这是我的代码:
$(function() {
var $input = $('#time'),
seconds = parseInt($input.val()),
$start = $('button');
$start.on('click', function() {
var interval = setInterval(function() {
switch (seconds) {
case 0:
clearInterval(interval);
console.log("Time's UP!");
break;
case 1:
console.log("Do końca pozostała " + seconds + " sekunda"); /*polish gramaticall variation*/
break;
case 4:
case 3:
case 2:
console.log("Do końca pozostało " + seconds + " sekundy"); /*polish gramaticall variation*/
break;
default:
console.log("Do końca pozostało " + seconds + " sekund"); /*polish gramaticall variation*/
}
seconds = seconds - 1;
}, 1000);
});
});
HTML:
<label for="time">Set time in seconds </label>
<input type="text" id="time">
<button>Start</button>
答案 0 :(得分:1)
您仅在seconds
上分配document.ready
的值,因此它的初始值""
- 只能解析为NaN
。将其移到.click
处理程序中,以便在每次单击按钮时更新秒数:
var seconds = 0;
$start.on('click', function(){
seconds = parseInt($input.val(), 10); // Always pass a radix to parseInt
....
});