インデックスi
を持つ配列をループしようとしています。 現在、5秒ごとにi
をインクリメントしています。キーを押した後にsetIntervalタイマーを再起動
しかし、私は手動で増分するオプションを追加したいと考えていますi
、タイマーを5秒(5000)
にリセットする必要があります。これをどのようにして成功させるのですか?
ので、例えば、
[a, b, c, d, e, f, g]
スタートで私は右矢印キーを押すと、それが表示されるはずです(または私は後で選ぶどんな機能)「A」、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
}
提案:ユーザーが何かを表示することを選択した場合は、タイマーを完全に停止します。彼らは遅く読んで5秒以上を必要とするかもしれません、そして、彼らは明らかに彼らが手動でそれを制御する方法を知っていることを示しました。 – zzzzBov