我試圖通過索引爲i
的數組進行循環。 目前每5秒增加i
。按鍵後重新啓動setInterval計時器
但是,我想添加手動遞增i
的選項,它應該將計時器重置爲5秒(5000)
。我如何成功實現這一目標?
因此,例如,
[a, b, c, d, e, f, g]
上的開始,它應該顯示(或其他功能我選擇以後)「一」,等待5秒鐘,顯示「B」 如果我按下右箭頭鍵那麼它應該立即移到「c」,但是再等5秒鐘,除非再次按 - >。
我試着把增量放在一個單獨的函數中,但是這並沒有很好地工作。
function doThis() {
if (i < (l + 1)) {
$('#myDiv').html(myArray[i]);
i++;
if (i == (l + 1)) {
doNext();
}
}}
var intervalHandle = setInterval(doThis, 5000); // start the interval by default
var running = true; // true if the interval is running, false if its not.
$("body").keydown(function (e) {
if (e.keyCode == 39) {//right
console.log("testing");
if (running) {
clearInterval(intervalHandle); // stop interval
running = false; // mark interval as stopped
} else {
intervalHandle = setInterval(doThis, 5000); // start interval
running = true; // mark interval as started
doThis(); // also change the image right now
}
} else {
e.preventDefault();
}
});
function doNext(){
//something here, when i ==l+1 as noted above
}
建議:如果用戶選擇查看內容,請完全停止定時器。他們可能讀得慢,需要超過五秒鐘,而且他們已經明確表示他們知道如何手動控制它。 – zzzzBov