jQuery变量increment ++在脚本中不起作用

时间:2012-07-16 02:46:41

标签: javascript jquery

我有这个jQuery函数,可以在不同的状态消息(p个元素)之间切换,其ID从status_0到status_5:

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 + 1,它返回01而不是1(连接它们),所以我尝试了next_status = current_status++并且它仍然返回0.

任何人都可以直截了当地请我:)

3 个答案:

答案 0 :(得分:13)

next_status = ++ current_status;

答案 1 :(得分:1)

表达式current_status++表示“递增current_status,并计算为current_status的旧值”,即使用current_status,然后在记下其值后递增它。

你想要++current_status,这意味着,“增加current_status,并评估新值。”

答案 2 :(得分:-1)

你的超时方法“setTimeout”会被多次调用吗?如果是这样,您需要将计数器作为具有全局范围的参数传递,否则每次都会重置。