Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Добавление класса к родителю активного пункта меню (https://javascript.ru/forum/jquery/61896-dobavlenie-klassa-k-roditelyu-aktivnogo-punkta-menyu.html)

Vladislav306907 14.03.2016 14:02

Добавление класса к родителю активного пункта меню
 
Добрый день, есть меню такого типа
<ul class="dropmenu" id="nav-one">
<li><a href="Izgotovleniye-chip-klyuchey">Изготовление ЧИП ключей</a>

<ul class="dropmenu box-content up">
<li><a href="izgotovlenie-chip-klyuchei-v-ivanovo-magicheckii-garazh">Для лековых авто</a></li>
<li><a href="dlya-gruzovix-avto-v-ivanovo-magicheckii-garazh">Для грузовых авто</a></li>
<li><a href="dlya-motociklov-v-ivanovo-magicheckii-garazh">Для мотоциклов</a></li>
</ul>
</li>
</ul>

Мне нужно, чтобы при нажатии пунктов родительскому ul добавлялся класс active. Сделал следующим образом: Если href у а равен адресу, то родителю дается класс.

$(document).ready(function(){
$('li a').each(function(){
if ($(this).attr('href')==document.location.pathname) $(this).parents('ul.box-content').addClass('active');
}
})

Но почему то не хочет срабатывать. В чем дело?

Dilettante_Pro 14.03.2016 18:44

Vladislav306907,
document.location.pathname начинается со слэша / (обязательно) и заканчивается расширением файла(необязательно), чего у вас в href нет
Например
alert(document.location.pathname);

Vladislav306907 14.03.2016 19:17

http://prntscr.com/af60sq - я что-то не понимаю?

Vladislav306907 14.03.2016 19:51

Додумал

<script type="text/javascript">
var b = document.location.pathname;
var bro = b.substr(1);
$('li a').each(function(){
if ($(this).attr('href')==bro) $(this).parents('ul.box-content').addClass('active');
});
</script>


Часовой пояс GMT +3, время: 18:29.