@Nikita_02

Как добавить класс следующему элементу и удалить у предыдущего?

Добрый день, уважаемые друзья!
Необходимо сделать следующее;
Есть такая структура

<div class="news">
	<div class="content-block active">...</div>
	<div class="content-block">...</div>
	<div class="content-block">...</div>
	<div class="content-block">...</div>
</div>


.content-block {
display: none;
}
.content-block.active {
display: block;
}


Как видно, один из дивов активный по умолчанию. Он имеет свойство display: block. У остальных - display: none.
Есть кнопка ".btn-news". При нажатии на нее нужно, чтобы первый див перестал быть активным, а следующий, который идет за ним, стал активным. Т.е. новости как бы пролистываются, но не карусель =)
Подскажите пожалуйста код. Стандартный естественно не подходит...

$(document).ready(function() {
	$(".btn-news").on("click", function(e) {
		e.preventDefault();
		$(".content-block").toggleClass("active");
	});


Перепробовал кучу вариантов, найденных в интернете, ничего так и не заработало. Как я понимаю, копать нужно в этом направлении

var newsTable = $('.news')
var current = newsTable.filter('.active');
                if (current. ... { /* не понимаю, что тут писать */
                    current.removeClass('active').next().addClass('active');
                } else {
                    current.removeClass('active');
                    newsTable.first().addClass('active');
                }


Заранее, спасибо огромное за помощь!!
  • Вопрос задан
  • 5000 просмотров
Решения вопроса 1
igorbelikov
@igorbelikov
Fullstack Developer
Лови :-)
$(function() {
  $('.btn-news').click(function(e) {
    var $current = $('.content-block.active');
    $current.removeClass('active');
    $current.next('.content-block').addClass('active');
  });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Farrien
Tell me who
Через index этого класса при чередования элементов в массиве each лучше будет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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