如何在setTimeout()中发生clearTimeout()?

时间:2016-02-23 14:50:38

标签: javascript jquery raphael settimeout

我已经运行了一个setTimeout函数来使一个监视工作,但是当我按下一个按钮时,我想在这个已经运行的函数上清空,但仅在几秒钟之后。理想情况下,我想在另一个setTimeout()函数中使用clearTimeout(),但我似乎无法使它工作。

我现在有这个代码:

alarm.click(function() {
    water.animate(anim);    
    setTimeout(function () { clearTimeout(time); }, 3000);
});

var time = setTimeout(function(){ startTime() },1000);

但它会立即清除它而不是3秒后清除它。 3秒后我该怎么做才能说清楚? 编辑我的代码,仍然无法正常工作:(。

2 个答案:

答案 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);
     ...
}