2016-02-10 106 views
0

我有一個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>

回答

2

可以使用clearTimeout功能

var myVar; 

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

function myStopFunction() { 
    clearTimeout(myVar); 
} 
1

是的,你必須存儲setTimeout返回值,然後clear它:

var timeout = setTimeout(..); 

.. 

clearTimeout(timeout); 
相關問題