jquery倒数计时器NaN

时间:2014-09-03 07:19:57

标签: javascript jquery countdowntimer

嗨,我是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>

1 个答案:

答案 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
    ....
});

jsFiddle