-1

私の問題は次のとおりです。

非常に単純な JavaScript がまったく機能しない

しかし、私の場合、答えは役に立ちません。

JS フィドルでは動作しますが、JS フィドル結果フレームのソース コードをコピーすると、(サーバー/コンピューターで) 動作しなくなります。

私のコード(簡略化):

<!DOCTYPE html>
<html>
<head>
    <title>Stack Overflow</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
    <p id="countdown2"></p>

    <script>

    function countdown(element, minutes, seconds) {
    var time = minutes*60 + seconds;
    var interval = setInterval(function() {
        var el = document.getElementById("countdown2");
        if(time == 0) {
            el.innerHTML = "countdown's over!";    
            clearInterval(interval);
            return;
        }
        var minutes = Number.floor( time / 60 );
        if (minutes < 10) minutes = "0" + minutes;
        var seconds = time % 60;
        if (seconds < 10) seconds = "0" + seconds; 
        var text = minutes + ':' + seconds;
        el.innerHTML = text;
        time--;
    }, 1000);
    }
    countdown("countdown2", 9, 23);

    </script>
</body>
</html>

ただし、この JS フィドルでは機能します。 http://jsfiddle.net/Apnu2/374/

私の簡略化されたオンラインページ:

http://biefstuk.org/mc/faal.html

私はこれに1時間以上取り組んでいます...

4

3 に答える 3

2

フィドルは MooTools をロードしますが、ページはロードしません。

変化する:

var minutes = Number.floor( time / 60 );

var minutes = Math.floor( time / 60 );

プレーンJSを使用します。

jsFiddle の例

于 2013-09-13T14:13:07.447 に答える
1

NumberメソッドはありませんfloorMath代わりに使用

Math.floor( time / 60 );
于 2013-09-13T14:18:29.723 に答える
0

jsFiddle は MooTools をロードします。MooTools は、ネイティブの Number オブジェクトを floor メソッドで拡張します。

あなたのコードはそうではないため、コードが Number.floor を呼び出そうとするとエラーが発生します。代わりに Math.floor を使用してください。

さて、それが定義された後に countDown を呼び出します。

于 2013-09-13T14:18:31.797 に答える