Jump to content

Archived

This topic is now archived and is closed to further replies.

drayarms

Is it possible to run an infinite loop with jQuery each() function

Recommended Posts

Hello folks, well the topic is self descriptive.  I used the each() function to run a loop on a group of divs.  The function takes a callback setTimeOut function to delay transitions, and this function in turn takes as its callback, two animate and a delay function which is basically the juice of the program.  The end result is, each div slides in from the left , spends a few seconds on the screen, then slides out, followed by the next div.  I want this to continue infinitely, not end with the last div.  Is it possible to accomplish that with the each function?  If so, what callback function do I use to accomplish that and where?  Here is my code.

 

html

		<div class ="slide" id ="slide1">





		</div> <!--closes slide1-->









		<div class ="slide" id ="slide2">





		</div> <!--closes slide2-->











		<div class ="slide" id ="slide3">





		</div> <!--closes slide3-->











		<div class ="slide" id ="slide4">





		</div> <!--closes slide4-->


 

css

.slide{width:400px;height:240px;display:none;position:relative;top:40px;left:20px}


#slide1{background:red}


#slide2{background:green}


#slide3{background:blue}


#slide4{background:yellow}



 

 

jQ

	<script type = "text/javascript">





	$(document).ready(function() {  


		$.each($('.slide'), function(i, val){

			setTimeout(function(){

				$(val).animate({width:"toggle"}, '4000').delay(3000).animate({width: "toggle"},'4000'); 


			},4500 + (i*4500)); 

		});  







	});    







	</script>

Share this post


Link to post
Share on other sites

I'm not too up to speed on JQuery, but I would think all you need to do is put the each() loop inside of another loop. Something like

while(1==1)
{
    $.each($('.slide'), function(i, val)
    {
        setTimeout(function()
        {
            $(val).animate({width:"toggle"}, '4000').delay(3000).animate({width: "toggle"},'4000'); 
        },4500 + (i*4500)); 
    }
}

So, on each loop of the outer loop, the each() loop is reset.

Share this post


Link to post
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.