Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2012, 04:04
Новичок на форуме
Отправить личное сообщение для krueger Посмотреть профиль Найти все сообщения от krueger
 
Регистрация: 10.08.2012
Сообщений: 1

Дважды срабатывает функция в слайдере
Доброго времени суток.
Написал скрипт слайдера на 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();
	}
});


Зарание благодарен за помощь, советы.

Последний раз редактировалось krueger, 10.08.2012 в 12:46. Причина: Исправление ошибок
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JQuery Form иногда не срабатывает функция обратного вызова success fedyak jQuery 2 23.01.2013 11:03
Функция срабатывает два раза, а должна - один pevec1 Элементы интерфейса 1 03.03.2012 04:29
Не срабатывает функция, которая выводит fancybox. DeXtR Events/DOM/Window 0 22.04.2011 12:07
Почему функция срабатывает один раз? Bogdan808 Javascript под браузер 4 06.09.2010 23:41
onload на iframe срабатывает дважды hogart Events/DOM/Window 3 09.12.2009 18:09