Execute functions every 10 seconds

I would like to have this trigger every X number of seconds.

if (this.activeImage != (this.imageArray.length - 1)){
                this.disableKeyboardNav();
                this.changeImage(this.activeImage + 1);
            }

Open in new window

LVL 1
bjv211Asked:
Who is Participating?
 
ChumadConnect With a Mentor Commented:
Lookup the setTimeout function... it works like this:

setTimeout("alert(0)", 10000);  //executes alert every 10 seconds

http://www.w3schools.com/htmldom/met_win_settimeout.asp
0
 
ram_0218Connect With a Mentor Commented:
look setInterval function thats what you'r looking for.
0
 
bjv211Author Commented:
I thought I could figure it out but i can't.  I want to call the following script every 10 seconds in this attached js file (ie, i want the image to change every 10 seconds.

if (this.activeImage != (this.imageArray.length - 1)){
                this.disableKeyboardNav();
                this.changeImage(this.activeImage + 1);
            }

lightbox.txt
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
ChumadCommented:
See attached code.
//the very first call to change the image happens here
setTimeOut("changeImage", 10000);
 
function changeImage() {
 
     //changes the image
     if (this.activeImage != (this.imageArray.length - 1)){
           this.disableKeyboardNav();
           this.changeImage(this.activeImage + 1);
     }
 
     //tell it to execute again in 10 seconds
     setTimeOut("changeImage", 10000);
}

Open in new window

0
 
bjv211Author Commented:
Chumad, where do I place the first call in th js?
0
 
bjv211Author Commented:
I placed the setTimeOut line inside the changeImage function (code snippet) and then defined the AdvanceShow function directly after.  This way the timer gets set each time an image is changed:
Will it work this way?


   changeImage: function(imageNum) {   
        
        this.activeImage = imageNum; // update global var
 
        // hide elements during transition
        if (LightboxOptions.animate) this.loading.show();
        this.lightboxImage.hide();
        this.hoverNav.hide();
        this.prevLink.hide();
        this.nextLink.hide();
		// HACK: Opera9 does not currently support scriptaculous opacity and appear fx
        this.imageDataContainer.setStyle({opacity: .0001});
        this.numberDisplay.hide();      
        
        var imgPreloader = new Image();
        
        // once image is preloaded, resize image container
        imgPreloader.onload = (function(){
        this.lightboxImage.src = this.imageArray[this.activeImage][0];
		var maxdims = getVisibleArea();
 
 
//    window.alert( 'Width = ' + maxdims[0] );
//	window.alert( 'Height = ' + maxdims[1] );
var ph=0;
var pw=0;
 
		var lb_max_width = maxdims[0]-20; //if you wish to constrain the width (set to 99999 for unlimited size)
		var lb_max_height = maxdims[1]-85; //if you wish to constring the height (set to 99999 for unlimited size)
		var dims = lb_scale_dims(imgPreloader.width, imgPreloader.height, lb_max_width, lb_max_height);
		this.lightboxImage.setStyle({ width: dims[0] + 'px', left: dims[1] + 'px' });
		this.resizeImageContainer(dims[0], dims[1]);
//		this.resizeImageContainer(imgPreloader.width, imgPreloader.height);
        }).bind(this);
        imgPreloader.src = this.imageArray[this.activeImage][0];
     	setTimeOut("this.AdvanceShow()", 5000);
    },
 
AdvanceShow: function() {
     //changes the image
     if (this.activeImage != (this.imageArray.length - 1))
	 {
           this.disableKeyboardNav();
           this.changeImage(this.activeImage + 1);
     }
},

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.