@pwnography

Как выделять активным и пункт меню (якорь), и сам блок на который он ведет?

Доброго времени суток, имеются якоря(назовем их пункты меню для простоты) на некоторые блоки на странице, по клику на пункт ему присваивается класс .active и страница перематывается до нужного блока.
А как добавить при этом самим блокам класс .active?
Я мыслю так: если у пункта есть класс .active и атрибут href=#one, тогда блоку с id=one добавить класс .active. Но а если элементов штук 15 будет, то так как-то не правильно перебирать каждый. Можно универсально сделать?
  • Вопрос задан
  • 1409 просмотров
Решения вопроса 1
@kir_vesp
Web Developer
function addClass() {
  	var id = $(this).attr('href');
  	$("a").removeClass('active');
        $("div").removeClass('active');
  	$(this).addClass('active');
  	$(id).addClass('active');
}

	var nodeList = document.querySelectorAll('a');

	for( var i = 0; i < nodeList.length; i++) {
		nodeList[i].addEventListener('click', addClass);
	}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
madmaker
@madmaker
Full stack программист
Как определяете блок, на который ведет пункт меню?
Вот по этому же принципу и класс .active добавляйте.
Можете наклепать в блоках дополнительный class типа "href_one" и делать jQuery(".href_one").addClass(".active")
Ответ написан
Ваш ответ на вопрос

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

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