Declaring a setInterval() without keeping a reference to it (which is returned from the function call setInterval(), it returns an id number for the registered event).

Like so:

var interval = setInterval(function() {
}, 1000);

It you can see it assigns a random number as the id for the event. Then when we clear the interval it uses that id.

Simply by calling:


A Diirty Solution
Now this is not good coding practice (for a number of reasons) but if you really need to clear that interval we can simply do a loop to find the id of the event to stop all setInterval() events that are running. I’ve done a quick jsfiddle to show you.

for(i=0; i<100; i++)

I’m pretty sure this will also work for setTimeout() and clearTimeout();

Sam Deering is a Front-end Web Developer who specialises in JavaScript & jQuery. Sam is driven and passionate about sharing his knowledge to educate others.

Free Guide:

How to Choose the Right Charting Library for Your Application

How do you make sure that the charting library you choose has everything you need? Sign up to receive this detailed guide from FusionCharts, which explores all the factors you need to consider before making the decision.

  • ilan

    I solve it by creating a fake interval whose id number is apparently the highest one. This method is very important with working on userscripts.

    var fake=setInterval(“”);

    for(var i = 0 ; i < fake ; i++) {

  • Mike

    You cant use a local var to clear the timers ??? Can U ?? Dosent work on my end…

Special Offer
Free course!

Git into it! Bonus course Introduction to Git is yours when you take up a free 14 day SitePoint Premium trial.