-1

これは私が自分のウェブサイトで簡単なストップウォッチを作成するために作成したスクリプトです。何年も前から実行してきましたが、結局、ストップウォッチは数字を変更せず、00:00:00.00 のままです。

これは私のスクリプトです:

<script>
    t  = 0;
    tt = 0;
    s  = 0;
    ss = 0;
    m  = 0;
    mm = 0;
    h  = 0;
    hh = 0;

    function increment() {
        t++;

        if (t  > 9) { t  = 0; tt++ };
        if (tt > 9) { tt = 0; s++  };
        if (s  > 9) { s  = 0; ss++ };
        if (ss > 5) { ss = 0; m++  };
        if (m  > 9) { m  = 0; mm++ };
        if (mm > 5) { mm = 0; h++  };
        if (h  > 9) { h  = 0; hh++ };
        if (hh > 9) { hh = 0;      };

        setTimeout(increment, 10);
    }

    increment();

    stopwatch = document.createElement("div");
    // stopwatch.setAttribute("class","stopwach") etc.
    stopwatch.innerHTML = '<h2>' + hh + h + ':' + mm + m + ':' + ss +
         s + '.' + tt + t + '</h2>';

    var maindivElement = document.getElementById("maindiv");
    var anchorElements = maindivElement.getElementsByTagName("a")…
    // maindivElement.insertBefore(stopwatch, etc.
</script>

助けてください!

4

1 に答える 1

0

関数のインクリメントはループ内にありますが、UI に対して実際には何もしません。

次のようになるはずです。

function increment() {
    t++;
    if (t > 9) {t = 0; tt++};
    if (tt > 9) {tt = 0; s++};
    if (s > 9) {s = 0; ss++};
    if (ss > 5) {ss = 0; m++};
    if (m > 9) {m = 0; mm++};
    if (mm > 5) {mm = 0; h++};
    if (h > 9) {h = 0; hh++};
    if (hh > 9) {hh = 0;};

    $("div").html('<h2>' + hh + h + ':' + mm + m + ':' + ss + s + '.' + tt + t + '</h2>');
}
setInterval(increment,1000);
于 2013-04-23T07:37:28.213 に答える