@shane89

Почему при 1-ом клике кнопка не срабатывает?

Добрый вечер. Хотел спросить, почему при первом клике по кнопке слайдера 1-ый клик не срабатывает. Изначально все все ок, но когда покликал такая фигня появляется. Вот здесь можете посмотреть vilabs.ak-ber.kz/. Проблема не в слайдере который в хедере, а ниже смотрите.
а вот сам код, по кликам стрелок, но можете и на сайте посмотреть.
var slidesM = 0;
	$('i.arrow-right').on('click', function(e){

		var indexClick = $(this).parent('.main-slider-nav').index()-2;
		var blocksSlider = $('.main-slider-nav').eq(indexClick).find('.slider-imgs-nav-info').length;

		slidesM++;

		if(slidesM >= blocksSlider){	
			slidesM = 0;
			$('.main-slider-nav').eq(indexClick).find('.slider-imgs-nav-margin').stop().animate({
				'marginLeft':'-'+slidesM+'00%'
			},770);
		}else{
			$('.main-slider-nav').eq(indexClick).find('.slider-imgs-nav-margin').stop().animate({
				'marginLeft':'-'+slidesM+'00%'
			},770);
		}

	});

	$('i.arrow-left').on('click', function(e){

		var indexClick = $(this).parent('.main-slider-nav').index()-2;
		var blocksSlider = $('.main-slider-nav').eq(indexClick).find('.slider-imgs-nav-info').length;

		slidesM--;
		
		if(slidesM > -blocksSlider){
			$('.main-slider-nav').eq(indexClick).find('.slider-imgs-nav-margin').stop().animate({
				'marginLeft':slidesM+'00%'
			},770);
		}else{
			slidesM = 0;
			$('.main-slider-nav').eq(indexClick).find('.slider-imgs-nav-margin').stop().animate({
				'marginLeft':slidesM+'00%'
			},770);
		}

	});
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Inwork277
Как минимум slidesM, который участвует во всех слайдерах как внутренний параметр, у Вас глобальный.

Да и по-моему вся проблема именно в нём. Вы листаете какой-то слайдер. slidesM становится равен единичке. Листаете другой слайдер, а slidesM уже единичка, к тому же ++ и вот он = 2, что == blocksSlider (конкретно о кнопке вправо) => он обнуляется и слайдер не двигается.

Вот и вся проблема. Если этот параметр действительно так нужен, то запоминайте его для каждого слайдера в отдельности.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы