有没有办法停止启动功能?

时间:2016-02-10 12:42:59

标签: javascript

我有一个带有setTimeout方法的函数。如果用户执行另一个功能(阻止"警报"发生),我想停止它。这可能吗?



function myFunction() {
    setTimeout(function(){ alert("Hello"); }, 3000);
}
function stopThis() {
    //how to stop myFunction()?
}

<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<button onclick="myFunction()">Activate</button>
<button onclick="stopThis()">Stop it</button>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

您可以使用clearTimeout功能

var myVar;

function myFunction() {
    myVar = setTimeout(function(){ alert("Hello"); }, 3000);
}

function myStopFunction() {
    clearTimeout(myVar);
}

答案 1 :(得分:1)

是的,您必须存储setTimeout的返回值,然后存储clear

var timeout = setTimeout(..);

..

clearTimeout(timeout);