I'm trying to make a small script where the screen will randomly change it's background color every 100ms, and you can toggle this on and off by pressing a single button. I can get it to start, but I can't get it to stop.
Here is the main code for toggling:
var on = -1;
function change() {
on = on*-1;
if (on == true) {
var light = window.setInterval(disco,100);
}
else {
window.clearInterval(light);
}
}
disco
is the function that changes the background color.
I've tried many different variations of this, but I think this is the closest I've gotten. Clicking the button now only set's another interval, despite the on
variable correctly switching between 1 and -1. Am I not using clearInterval properly?
The full JSFiddle is here: http://jsfiddle.net/VZdk9/
I'm trying to practice JavaScript, so no jQuery please :)
var light;
outside of the function, else it will be "undefined" when its called a second time for the close action . – Saguache