我有一个带有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;
答案 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);