2015-11-29 6 views
0

У меня есть быстрый вопрос. Может ли кто-нибудь сказать мне, почему этот код не работает? Он должен вращать 3 изображения в баннере на веб-сайте, но он делает это только один раз. СпасибоЯ не знаю, почему мой setInterval не работает javascript

<body onload ="setInterval(changeImage, 3000);"> 

     <script> 
    var cont = 1; 

    function changeImage(){ 


    switch (cont) 
    { 
     case 1: 
     document.getElementById("grandImage").src = "Images/Banner/jirafa.jpg"; 
     cont += 1; 
     break; 
     case 2: 
     document.getElementById("grandImage").src = "Images/Banner/leo.jpg"; 
     cont += 1; 
     break; 

     default: 
     document.getElementById("grandImage").src = "Images/Banner/lion.jpg"; 
     cont=0; 

    } 



    </script> 


    } 
+1

где 'cont' определено – Ramanlfc

+0

перед функцией является глобальной переменной – Natally

ответ

2

Ваша закрывающая скобка для функции changeImage находится вне </script>.

Кроме того, в качестве параметра функции вам не нужен cont.

<body onload ="setInterval(changeImage, 3000);"> 
 

 
     <script> 
 
    var cont = 1; 
 

 
    function changeImage(){ 
 

 

 
    switch() 
 
    { 
 
     case 1: 
 
     document.getElementById("grandImage").src = "Images/Banner/jirafa.jpg"; 
 
     cont += 1; 
 
     break; 
 
     case 2: 
 
     document.getElementById("grandImage").src = "Images/Banner/leo.jpg"; 
 
     cont += 1; 
 
     break; 
 

 
     default: 
 
     document.getElementById("grandImage").src = "Images/Banner/lion.jpg"; 
 
     cont=0; 
 

 
    } 
 

 
    } 
 

 
    </script> 
 

 

 

+1

Как ** Грант ** сказал, что ваш замыкающий кронштейн для функции ** changeImage ** находится за пределами ** **. +1 к гранту [Вот ваш код работает] (https://jsfiddle.net/FacuCode/9qgazzLa/) –

0

В умолчанию вы назначаете 0 к cont, и вы не имеете дело для 0, таким образом, он возвращается к default снова. Установка cont=1 в default исправит это.