Natally
Natally

Reputation: 3

I dont know why my setInterval is not working javascript

I have a quick question. Can anyone tell me why this code is not working? It is supposed to rotate 3 images in a banner on a website, but it only does it once. Thank you

    <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>


    }

Upvotes: 0

Views: 45

Answers (2)

Grant Fitez
Grant Fitez

Reputation: 39

Your closing bracket for the function changeImage is outside of the </script>.

    <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>


    

Upvotes: 2

kolaps
kolaps

Reputation: 16

In default you are assigning 0 to cont, and you don't have a case for 0, this way it comes back to default again. Setting cont=1 in default will fix it.

Upvotes: 0

Related Questions