Это работает для меня, в основном навигация такая же
<div id="main-menu">
<ul>
<li><a href="<?php echo base_url();?>shop">SHOP</a>
<li><a href="<?php echo base_url();?>events">EVENTS</a>
<li><a href="<?php echo base_url();?>services">SERVICES</a>
</ul>
</div>
Допустим, вы находитесь по URL: http://localhost/project_name/shop/detail_shop/
И вам нужна ссылка "SHOP" наполучить класс «активный», чтобы вы могли визуально указать, что это активная навигация, даже если вы находитесь на подстранице «магазина» в «detail_shop».
JavaScript:
var path = window.location.pathname;
var str = path.split("/");
var url = document.location.protocol + "//" + document.location.hostname + "/" + str[1] + "/" + str[2];
$('#main-menu a[href="' + url + '"]').parent('li').addClass('active');
- str получит , имя_проекта, магазин, detail_shop
- document.location.protocol получит http:
- document.location.hostname получит localhost
- str [1] получит project_name
- str [2] получит shop
По сути, это будет совпадать со ссылками в nav, атрибут href которых начинается с "shop" (или каков бы ни был вторичный каталог).