2016-11-14 7 views
0

У меня есть обратный отсчет, который будет отображать новую piture каждые 5 секунд >> она работает приблизительно, но в конце массива, состоящего из 10 изображений, я не в состоянии остановить отсчет + остановки, чтобы отобразить изображение с clearInterval ...В javascript я не успеваю остановить свою петлю с clearIntereval для setInterval

enter image description here

Мой сценарий

<script> 
     var myImage = document.getElementById ("mainImage"); 
     var imageArray = ["img/lunge.png", 
         "img/plank.png", 
         "img/push-up-and-rotation.png", 
         "img/push-up.png", 
         "img/side-plank-left.png", 
         "img/side-plank-right.png", 
         "img/squat.png", 
         "img/step-up-onto-chair.png", 
         "img/triceps-dip-on-chair.png", 
         "img/wall-sit.png"] 
     var imageIndex = 0; 
     $(document).ready(function() { 
      $('#submit').click(function() { 
       $('.timer').circularCountDown() 
       var inter = setInterval (changeImage, 5000); 
       function changeImage() { 
        myImage.setAttribute ("src", imageArray [imageIndex]); 
        document.getElementById("circle").innerHTML = ""; 
        imageIndex++; 
        if (imageIndex >= imageArray.length) { 
         imageIndex =0; 
         } 
        $('.timer').circularCountDown() 
        } 
       function stopinter() { 
        clearInterval (inter); 
       } 
      }) 
     }) 
    </script> 

Любая идея о том, как сделать из улучшить мой сценарий?

Спасибо,

Оливье

+2

Может быть, я не хватает, но я не видя ' stopinter', называемый где угодно ... – Kryten

+0

На кнопке 'stop' нажмите, вызовите функцию' stopinter() '. –

+0

он должен остановиться в конце длины массива ... Кнопка остановки - это еще один способ остановить, но я еще не написал свой код для этого ... – Olive

ответ

0
imageIndex++; 
if (imageIndex >= imageArray.length) { 
    stopinter(); 
} 
+0

Извините, я не видел этого ответа. Но, наконец, я нашел другой путь. Я также попробую с вашим предложением! ;-) Спасибо – Olive

0

Финлей, я заставить его работать с этим решением:

$('.timer').circularCountDown() 
        for (;i==10;i++) { 
         clearInterval (inter); 
        }