0

ドキュメントが間隔をあけるたびに、最後の番号に+1を追加するにはどうすればよいですか? 私はこれを取得しています:jsfiddle.net/zAt7C/1/

$(document).ready(function () {
    // verification
    $('title').text('jQuery is working!');

    // loop
    setInterval(function () {
        for (var i = 1; i < 2; i++) {
            $('.repeat').append(i + ' ');
        };
    }, 1000);
});
4

3 に答える 3

0
$(document).ready(function () {
    // verification
    $('title').text('jQuery is working!');

    (function func (i) {
        setTimeout(function () {
            $('.repeat').append(i + ' ');
            i += 1;

            if (i <= 10) {
                func(i);
            }
        }, 1000);
    }(0))
});

フィドル

于 2013-03-28T02:06:23.380 に答える
0

LIVE DEMO

var i = 0;
setInterval(function () {
    $('.repeat').append(' '+ (i++) );
}, 1000);
于 2013-03-28T01:56:54.517 に答える
0

jsFiddle デモ

答えは実際には変数スコープの使用にあります。変数は、コールバック関数iのスコープに対してのみ存在します。setIntervalその関数の前後には変数が存在しないため、値を保持できません...関数が開始されるたびに再初期化されるだけです。変数をsetTimeout関数の外に移動すると、より大きなスコープ、つまり$(document).readyイベント ハンドラーの一部になります。そのスコープと、そのスコープ内の他のすべてのスコープ (この場合はsetTimeoutコールバック) の両方で引き続き使用できます。

Javascript について読むのに適した本は Douglas Crockford のJavascript: The Good Partsです。スコープとクロージャーを説明する良い投稿もあります JavaScript クロージャーはどのように機能しますか?

于 2013-03-28T01:57:46.673 に答える