How to stop "setInterval" [duplicate]
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); });});
Store the return of setInterval
in a variable, and use it later to clear the interval.
var timer = null;$("textarea").blur(function(){ timer = window.setInterval(function(){ ... whatever ... }, 2000);}).focus(function(){ if(timer){ window.clearInterval(timer); timer = null }});