2

status_0 から status_5 までの ID を持つさまざまなステータス メッセージ (p 要素) を切り替えるこの jQuery 関数があります。

setTimeout(function() {
    var next_status;

    if (current_status < 5) {
        next_status = current_status++;
    } else {
        next_status = 0;
    }

    $(".status_visible").fadeOut("fast", function() {
        $("#status_"+next_status).fadeIn("fast");
    });

    //alert(next_status);

    change_status();
}, 10000);

私の問題は、最初はcurrent_status間違いなく0に等しいことですが、増分部分に到達すると、まだ0として出てきます! next_status = current_status + 11ではなく 01 を返した (それらを連結した)単純なでこれを試したので、試しnext_status = current_status++てみましたが、それでも 0 が返されました。

誰か私をここにまっすぐ入れてください:)

4

3 に答える 3

13
next_status = ++ current_status;
于 2012-07-16T02:51:18.747 に答える
1

この表現current_status++は、「current_status をインクリメントし、current_status の古い値に評価する」ことを意味します。つまり、current_status を使用し、その値をメモした後にインクリメントします。

++current_statusこれは、「current_status をインクリメントし、新しい値に評価する」ことを意味します。

于 2012-07-16T02:53:23.737 に答える
-1

あなたのタイムアウトメソッド「setTimeout」は複数回呼び出されますか? その場合は、カウンタをグローバル スコープのパラメータとして渡す必要があります。そうしないと、毎回リセットされます。

于 2012-07-16T02:50:02.943 に答える