我有这个函数,它每5秒循环一次字符串列表。我希望它在完成循环后留在最后一个字符串。 我需要在这里更改什么?
window.specialWorkBoxStyleOverride = function(workBox) {
var statusTextBox = $("<div class = 'status-description-box'></div>");
$(workBox).append(statusTextBox);
var statusTexts = ["Checking", "Updating", "Processing", "Saving"];
var idx = 0;
var updateStatus = function() {
statusTextBox.text(statusTexts[idx]);
idx = (idx + 1) % statusTexts.length;
setTimeout(updateStatus, 5000);
};
updateStatus();
};
非常感谢。
答案 0 :(得分:2)
现在你的代码总是调用setTimeout
,所以它会永远循环。检查您是否已到达列表的末尾应足以阻止此操作(并且意味着您不再需要模块化算法):
var updateStatus = function() {
statusTextBox.text(statusTexts[idx]);
idx++;
if (idx < statusTexts.length) {
setTimeout(updateStatus, 5000);
}
};