我有这个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.
任何人都可以直截了当地请我:)
答案 0 :(得分:13)
next_status = ++ current_status;
答案 1 :(得分:1)
表达式current_status++
表示“递增current_status,并计算为current_status的旧值”,即使用current_status,然后在记下其值后递增它。
你想要++current_status
,这意味着,“增加current_status,并评估新值。”
答案 2 :(得分:-1)
你的超时方法“setTimeout”会被多次调用吗?如果是这样,您需要将计数器作为具有全局范围的参数传递,否则每次都会重置。