How do I stop and start setInterval
?
Suppose I have a textarea
. I want to stop setInterval
on focus and restart setInterval
on blur (with jQuery).
You need to clearInterval() method to stop the setInterval() method. Note: 1000 ms = 1 second. If you want to execute a function only once Then use the setTimeout() method.
Yes, setInterval repeats until you call clearInterval with the interval to stop.
You have to store the timer id of the interval when you start it, you will use this value later to stop it, using the clearInterval
function:
$(function () { var timerId = 0; $('textarea').focus(function () { timerId = setInterval(function () { // interval function body }, 1000); }); $('textarea').blur(function () { clearInterval(timerId); }); });
This is based on CMS's answer. The question asked for the timer to be restarted on the blur and stopped on the focus, so I moved it around a little:
$(function () { var timerId = 0; $('textarea').focus(function () { clearInterval(timerId); }); $('textarea').blur(function () { timerId = setInterval(function () { //some code here }, 1000); }); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With