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 回答