0

送信ボタンのクリックでカウントダウンを停止したいのですが、いくつかのページを検索しましたが、何も見つかりませんでした。クリックで停止したいコードは次のとおりです

function countDown (count) {
  if (count > 0) {
   var d = document.getElementById("countDiv");
   d.innerHTML = count;
   setTimeout (function() { countDown(count-1); }, 1000);
   document.getElementById('tiempo').value = count;
  }
  else
   document.location = "timeover.php";
}
document.getElementById("palabra").focus();
countDown(5);
</script>
4

2 に答える 2

0

次のようなことを試してください:

var stopped = false; 
function countDown (count) {
  if (count > 0) {
   var d = document.getElementById("countDiv");
   d.innerHTML = count;
   document.getElementById('tiempo').value = count;
   if (!stopped) { 
    setTimeout (function() { countDown(count-1); }, 1000);
   }
  }
  else
   document.location = "timeover.php";
}
document.getElementById("palabra").focus();
document.getElementById("mySubmitId").onclick = function () { 
  stopped = true;
};
countDown(5);
于 2013-06-19T21:01:04.473 に答える
0

タイムアウトへの参照を保存し(実際にはタイムアウトの戻り値は数値になります)、それを使用してタイムアウトをキャンセルする必要があります。

var timeout = window.setTimeout(function () {
    // do something
}, 1000);

// clear timeout
window.clearTimeout(timeout);

あなたはおそらくアイデアを得ました。ちなみに、setIntervalこの状況ではメソッドの方が優れているので、おそらくメソッドを確認する必要があります。間隔は、キャンセルするまで「刻み」ます。

于 2013-06-19T21:03:51.500 に答える