2

を使用した単純なカウントダウンsetintervalがあり、関数が定義されていないというエラーが表示されます。ボタンを使用して間隔を開始および停止しています。なぜこれが起こるのか考えはありますか?

Javascript

function startCount() {
    $(function() {
        var count = 10;
        countdown = setInterval(function() {
            $("p.countdown").html(count + " seconds remaining!");
            if (count === 0) {
                window.location = 'http://google.com';
            }
            count--;
        }, 1000);
    });
}



function startStop() {
    clearInterval(countdown);
}​

html

<p class="countdown"></p>
<button onclick="startCount()">Start</button>
<button onclick="startStop()">Stop</button>

デモ http://jsfiddle.net/54uQz/1/

4

1 に答える 1

2

カウントダウン変数を関数の外で宣言してstartCount()、両方の関数に表示されるようにします。現時点では最初にのみ存在するため、タイマーをクリアしても何も起こりません。

コード:

var countdown;

function startCount() {
    var count = 10;
    countdown = setInterval(function() {
        $("p.countdown").html(count + " seconds remaining!");
        if (count === 0) {
            window.location = 'http://google.com';
        }
        count--;
    }, 1000);
}


function startStop() {
    clearInterval(countdown);
}

更新されたフィドルの例!

于 2012-05-13T03:12:46.820 に答える