Я предполагаю, что ваш фокусный слушатель вызывается, когда все запускается.Вы можете попробовать проверить, есть ли у вас carouselIntervalId
перед запуском таймеров:
if(!carouselIntervalId)
carouselIntervalId = setInterval(...);
И поскольку мы все здесь параноики, поставьте эту проверку перед обоими setInterval
вызовами.
Тогда вы захотите обнулить carouselIntervalId
при остановке таймера:
if(carouselIntervalId)
clearInterval(carouselIntervalId);
carouselIntervalId = null;
Вы, конечно, хотите, чтобы все вышеперечисленные вызовы clearInterval
.
Кроме того, хотя я обращаю ваше внимание (?), Я замечаю, что у вас есть два разных вызова setInterval
:
setInterval(function() { carouselNext() }, 15000);
// And later...
setInterval(function() { if (animate == true) { carouselNext() } }, 15000);
Возможно, вы захотите сделать их одинаковыми, чтобы избежать путаницы и ошибок.