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

Почему класс исчезает при переходе по ссылке?

Имеется обыкновенное меню
<div id="navigation">
			<ul>
			    <li><a href="#">Главная</a></li>
			    <li><a href="#">Личный кабинет</a></li>
			    <li><a href="#">Помощь</a></li>
			    <li><a href="?view=contact">Контакты</a></li>
			</ul>
	</div>

пытаюсь присвоить класс active активному пункту меню
$('#navigation ul li a').click(function(){
       $('#navigation ul li a').removeClass("active");
        $(this).addClass("active");
    })
всё работает, но проблема в том, что при переходе по ссылке, класс active у активного пункта не сохраняется, а ссылки на которых стоят заглушки (#) всё сохраняется. В чём может быть проблема подскажите пожалуйста.

P.S. В jQuery слаб
  • Вопрос задан
  • 321 просмотр
Подписаться Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Fly3110
web developer
Потому что при обработке ссылки, которая начинается с #, не происходит перезагрузки страницы и все присвоенные скриптом классы остаются. А при переходе по ссылке на новую страницу, меню грузится заново, без проставленных скриптом классов.

Выход - проставлять изначальные классы на стороне сервера, либо вызывать скрипт, который отметит текущий пункт меню, после загрузки страницы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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