my slideshow is running through once and not restarting once it has run through. I have posted all the code I have below.
$(document).ready(function() {
$('img.banner1').show();
$('div.banner1').show();
$('.nav ul li:nth-child(3)').addClass('child3');
$('.nav ul li:nth-child(4)').addClass('child4');
promoCycle = setInterval('cycle()', 5000);
});
$('a.banner2').mouseover(function() {
$('.banner img.banner2').show();
$('.banner .texts div.banner2').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner3,.banner .buttons ul li.banner4,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner3,.banner .texts div.banner4,.banner .texts div.banner5').hide();
$('.banner img.banner1,.banner img.banner3,.banner img.banner4,.banner img.banner5').hide();
clearInterval(promoCycle);
});
$('a.banner3').mouseover(function() {
$('.banner img.banner3').show();
$('.banner .texts div.banner3').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner2,.banner .buttons ul li.banner4,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner2,.banner .texts div.banner4,.banner .texts div.banner5').hide();
$('.banner img.banner1,.banner img.banner2,.banner img.banner4,.banner img.banner5').hide();
clearInterval(promoCycle);
});
$('a.banner4').mouseover(function() {
$('.banner img.banner4').show();
$('.banner .texts div.banner4').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner3,.banner .buttons ul li.banner2,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner3,.banner .texts div.banner2,.banner .texts div.banner5').hide();
$('.banner img.banner1,.banner img.banner3,.banner img.banner2,.banner img.banner5').hide();
clearInterval(promoCycle);
});
$('a.banner5').mouseover(function() {
$('.banner img.banner5').show();
$('.banner .texts div.banner5').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner3,.banner .buttons ul li.banner4,.banner .buttons ul li.banner2').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner3,.banner .texts div.banner4,.banner .texts div.banner2').hide();
$('.banner img.banner1,.banner img.banner3,.banner img.banner4,.banner img.banner2').hide();
clearInterval(promoCycle);
});
$('.banner .buttons').mouseout(function() {
$('.banner .buttons ul li.banner2,.banner .buttons ul li.banner3,.banner .buttons ul li.banner4,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner2,.banner .texts div.banner3,.banner .texts div.banner4,.banner .texts div.banner5').hide();
$('.banner img.banner2,.banner img.banner3,.banner img.banner4,.banner img.banner5').hide();
$('.banner img.banner1').show();
$('.banner .texts div.banner1').show();
clearInterval(promoCycle);
});
var count = 1;
function cycle(){
count++;
if (count == 2) {
$('.banner .buttons li.banner2').addClass('on');
$('.banner img.banner2').show();
$('.banner .texts div.banner2').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner3,.banner .buttons ul li.banner4,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner3,.banner .texts div.banner4,.banner .texts div.banner5').hide();
$('.banner img.banner1,.banner img.banner3,.banner img.banner4,.banner img.banner5').hide();
}
if (count == 3) {
$('.banner .buttons li.banner3').addClass('on');
$('.banner img.banner3').show();
$('.banner .texts div.banner3').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner2,.banner .buttons ul li.banner4,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner2,.banner .texts div.banner4,.banner .texts div.banner5').hide();
$('.banner img.banner1,.banner img.banner2,.banner img.banner4,.banner img.banner5').hide();
}
if (count == 4) {
$('.banner .buttons li.banner4').addClass('on');
$('.banner img.banner4').show();
$('.banner .texts div.banner4').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner3,.banner .buttons ul li.banner2,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner3,.banner .texts div.banner2,.banner .texts div.banner5').hide();
$('.banner img.banner1,.banner img.banner3,.banner img.banner2,.banner img.banner5').hide();
}
if (count == 5) {
$('.banner .buttons li.banner5').addClass('on');
$('.banner img.banner5').show();
$('.banner .texts div.banner5').show();
$('.banner .buttons ul li.banner1,.banner .buttons ul li.banner3,.banner .buttons ul li.banner4,.banner .buttons ul li.banner2').removeClass('on');
$('.banner .texts div.banner1,.banner .texts div.banner3,.banner .texts div.banner4,.banner .texts div.banner2').hide();
$('.banner img.banner1,.banner img.banner3,.banner img.banner4,.banner img.banner2').hide();
}
if (count == 6) {
$('.banner img.banner1').show();
$('.banner .texts div.banner1').show();
$('.banner .buttons ul li.banner2,.banner .buttons ul li.banner3,.banner .buttons ul li.banner4,.banner .buttons ul li.banner5').removeClass('on');
$('.banner .texts div.banner2,.banner .texts div.banner3,.banner .texts div.banner4,.banner .texts div.banner5').hide();
$('.banner img.banner2,.banner img.banner3,.banner img.banner4,.banner img.banner5').hide();
clearInterval(promoCycle);
}
}
Your trouble is your are using
clearIntervalafter the last banner. This stops the cycle from repeating. Instead, you should resetcountto1and remove the call toclearInterval.Also, it looks like your
mouseoutcode is trying to resume the cycle. Instead ofclearInterval, you should again usepromoCycle = setInterval(cycle, 5000).All that being said… Holy code-bloat batman! You can pare down that code dramatically! Here’s a shot I took at it (untested, since I don’t have your html):
I would actually go further and replace
class="banner1"with<div banner="1">(for all bannerX elements, not just divs). This way you can use jQuery selectors like:For example, binding
$("a.bannerX").mouseoverwould be simplified from 5 calls to just one with no need for a function constructor: