Я пытаюсь создать небольшой скрипт, где экран будет случайным образом менять цвет фона каждые 100 мс, и вы можете включать и выключать это нажатием одной кнопки. Я могу заставить его начать, но я не могу заставить его остановиться.Javascript, toggle setInterval
Вот основной код переключая:
var on = -1;
function change() {
on = on*-1;
if (on == true) {
var light = window.setInterval(disco,100);
}
else {
window.clearInterval(light);
}
}
disco
это функция, которая изменяет цвет фона.
Я пробовал много разных вариантов этого, но я думаю, что это самое близкое, что я получил. Нажатие кнопки теперь устанавливает только другой интервал, несмотря на то, что переменная on
правильно переключается между 1 и -1. Я не использую clearInterval правильно?
Полный JSFiddle здесь: http://jsfiddle.net/VZdk9/
Я пытаюсь практиковать JavaScript, так что не JQuery пожалуйста :)
Вам нужно будет поместить 'var light;' вне функции, иначе он будет «неопределенным», когда его вызовут второй раз для действия close. – Carl