Здравствуйте! Учу основы JS. Написал код учебного задания: по клику на хедер он должен меняться и двигаться быстрее. После 10 клика хедер должен остановится. Но clearInterval почему то не работает. Форум почитал, ответа не нашел. Вроде опечаток нет и переменная глобальная. Подозреваю, что суть в том, что значение переменных в intervalId постоянно меняются. Но как это исправить, не знаю. Спасибо.
var leftOffset = 0;
var topOffset = 0;
var moveHeading = function () {
$("#heading").offset({ left: leftOffset,
top: topOffset});
if (leftOffset < 200 && topOffset <=0) {
leftOffset++;
}
if (leftOffset >= 200 && topOffset < 200) {
topOffset++;}
if (leftOffset > 0 && topOffset >= 200) {
leftOffset--;}
if (leftOffset <= 0 && topOffset > 0) {
topOffset--;
}
};
var clicks = 0;
var speed = 50;
var intervalId;
$("#heading").click(function () {
clicks++;
speed-=5;
if (clicks < 10) {
$("#heading").text("You clicked " + clicks);
intervalId = setInterval(moveHeading, speed);
}
if (clicks == 10) {
$("#heading").text("Congratulations! You won!");
clearInterval(intervalId);
}
}
);