Задать вопрос
sergey155
@sergey155

Jquery при смени класса не отрабатывает таб?

Всем привет, есть код на jquery, не пойму почему если меняеться класс дива .t1 к примеру на див .tc2 так же замена его в js, не отрабатываюит табы .. И тоже самое происходит с лишками если изменить клас у li так же код не отрабатывает.

<ul id="menu-tabs" class="tabs">
			<li class="t1"><a href="#">1</a></li>
			<li class="t2"><a href="#">2</a></li>
			<li class="t3"><a href="#">3</a></li>
		</ul>
		<div class="tab-content">
			<div class="t1 tab">
				<div class="block">1grey \ blue</div>
			</div>
			<div class="t2 tab">
				<div class="block">2grey \ blue</div>
			</div>
			<div class="t3 tab">
				<div class="block">3grey \ blue</div>
			</div>
		</div>


$('#menu-tabs li').click(function(){
	$('div.t1').hide();
	$('div.t2').hide();
	$('div.t3').hide();
	$('div.' + this.className.slice(0,2)).fadeIn(500);
	$('#menu-tabs li').removeClass('active');
	$(this).addClass('active');
	return false;
});


  • Вопрос задан
  • 80 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
@rifat2125
Как вариант, можно вообще от имени класса зависимость убрать. Здесь мы работает с индексами.
const setNthActive = (index) => {
  $(".tab-content > div").hide();
  $(`.tab-content > div:nth(${index})`).fadeIn(500);
};

$("#menu-tabs li").click(function () {
  $("#menu-tabs li").removeClass("active");
  $(this).addClass("active");

  setNthActive($(this).index());
  return false;
});

setNthActive(0);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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