ArtMavir
@ArtMavir

Как подсветить активный пункт меню?

Как подсветить активный пункт меню? Нужно добавить к li класс active.
<div class="navbar-collapse collapse">
					<ul class="nav navbar-nav">
						<li><?=anchor('', 'Dashboard');?></li>
						<li class="dropdown">
							<a href="#" class="dropdown-toggle" data-toggle="dropdown">Social feed <span class="caret"></span></a>
							<ul class="dropdown-menu" role="menu">
								<li><a href="#">Twitter</a></li>
								<li><a href="#">Vk</a></li>
								<li><a href="#">FB</a></li>
								<li><a href="#">Instagram</a></li>
							</ul>
						</li>
						<li class="dropdown">
							<a href="#" class="dropdown-toggle" data-toggle="dropdown">Users <span class="caret"></span></a>
							<ul class="dropdown-menu" role="menu">
								<li><?=anchor('users_admin', 'Admin panel');?></li>
								<li><?=anchor('users_api', 'Application');?></li>
							</ul>
						</li>
					</ul>
					<ul class="nav navbar-nav navbar-right">
						<li class="dropdown">
							<a href="#" class="dropdown-toggle" data-toggle="dropdown">Hello, <?=$this->session->userdata('login');?> <span class="caret"></span></a>
							<ul class="dropdown-menu" role="menu">
								<li><?=anchor('users_api', 'Profile');?></li>
								<li><?=anchor('logout', 'Logout');?></li>
							</ul>
						</li>
					</ul>
				</div>


Делаю так.
<script type="text/javascript">
			$(document).ready(function(){
				var link = window.location.pathname;
				$('.nav li a[href="'+link+'"]').parents('li').addClass('active');
			});
		</script>


Не работает. Подскажите, как исправить. Буду благодарен.
  • Вопрос задан
  • 3512 просмотров
Решения вопроса 1
Rad1calDreamer
@Rad1calDreamer
Во-первых, все таки правильно это делать при формировании страницы на php.
Ну а во-вторых, если уж вам так надо это сделать скриптом то попробуйте вот так
$(document).ready(function() {
			var link = window.location.pathname;
			$('.nav li.active').removeClass('active');
			$('.nav li a').each(function() {
					if ($(this).attr('href' == link) {
							$(this).parent('li').addClass('active');
						}
					});
			});
	});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
А вас не посещала мысль, что это будет правильнее сделать на php?
Ответ написан
Symphony
@Symphony Куратор тега JavaScript
Это делается в бекэнде
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект