我已经运行了一个setTimeout函数来使一个监视工作,但是当我按下一个按钮时,我想在这个已经运行的函数上清空,但仅在几秒钟之后。理想情况下,我想在另一个setTimeout()函数中使用clearTimeout(),但我似乎无法使它工作。
我现在有这个代码:
alarm.click(function() {
water.animate(anim);
setTimeout(function () { clearTimeout(time); }, 3000);
});
var time = setTimeout(function(){ startTime() },1000);
但它会立即清除它而不是3秒后清除它。 3秒后我该怎么做才能说清楚? 编辑我的代码,仍然无法正常工作:(。
答案 0 :(得分:1)
你正在直接打电话,但你需要回电。
setTimeout(function () { clearTimeout(time); }, 3000);
function startTime() {
document.getElementById('out').innerHTML += 'starttime<br>';
}
function set() {
document.getElementById('out').innerHTML += 'set<br>';
setTimeout(function () {
document.getElementById('out').innerHTML += 'clear3000<br>';
clearTimeout(time);
}, 3000);
}
var time = setTimeout(function () {
document.getElementById('out').innerHTML += 'clear1000<br>';
startTime();
}, 1000);
set();
<div id="out"></div>
答案 1 :(得分:0)
您可以尝试:
var time = setTimeout(function(){startTime(time)},1000);
在startTime中,您可以清除time
function startTime(time) {
cleartTimeout(time);
...
}