Доброго времени суток.
Написал скрипт слайдера на jQuery.
Структура: список заголовков, под ними сам слайдер. При клике на заголовок - смена слайда. Также сделал автоплей + пауза при ховере. Проблема в том, что иногда функция автоплей срабатывает дважды. В чем ошибка?
$(document).ready(function(){
currentslide = 1;
$(".newslidernav li").click(function(){
var position = $(this).position();
var slideIndex = $(this).index() + 1;
currentslide = slideIndex;
showslide(slideIndex, position);
});
function showslide(slideIndex, position){
$(".newslidermarker").animate(
{left: position.left+20},
{
duration: 500, easing: 'swing', complete: function() {
$(".newslidernav li.act").removeClass("act");
$(".newslidernav li:nth-child("+slideIndex+")").addClass("act");
}
}
);
$("#newslider li.act").css({zIndex: 0});
$("#newslider li:nth-child("+slideIndex+")").css({opacity: 0, display: "block", zIndex: 50}).animate(
{opacity: 1},
{
duration: 500, easing: 'swing', complete: function() {
$("#newslider li.act").removeClass("act").css({opacity: 0, display: "none"});
$("#newslider li:nth-child("+slideIndex+")").addClass("act").css({opacity: 1, display: "block"});
}
}
);
}
$("#newslider li:first-child").addClass("act").css({display: "block"});
$(".newslider li:first-child").addClass("act");
letsgo = setInterval(function(){autoplay();},5000);
$(".newslider").hover(function(){
letsgo = clearInterval(letsgo);
},function(){
letsgo = setInterval(function(){autoplay();},5000);
});
function autoplay(){
var countitems = $(".newslidernav li").length;
var nextslide = currentslide + 1;
if(nextslide>countitems){currentslide=0; nextslide=1;}
$('.newslidernav li:nth-child('+nextslide+')').click();
}
});
Зарание благодарен за помощь, советы.