2016-02-10 4 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); 
Смежные вопросы