Jquery - addClass ('active') для Top Navigation, если он соответствует текущему родителю активной ссылки в аккордеоне. - PullRequest
0 голосов
/ 18 января 2011

Проблема в том, что у меня навигация состоит из двух частей.Верхняя навигация и левая навигация.Мне нужно указать верхней ссылке, чтобы у нее был класс ".active", если братом по левому краю является текущий URL.

EX: Если вы используете дочернюю ссылку, например, "Bio"необходимо указать верхнюю навигационную ссылку «О программе», чтобы иметь класс .active.

Главная |О |Контакт

<- Содержание страницы здесь ->

<ul id="leftnav">
      <li>Home</li>
      <li><a href="ul.com/">About</a>
            <ul>
                  <li>Bio</li>
                  <li>History</li>
                  <li>Location</li>
            </ul>
      </li>
      <li>Contact</li>
</ul>

Я пробовал это:

$(document).ready(function() {
    currentPage = window.location.pathname;
    if( $('.sidebarNav li a[href$="' + currentPage + '"]').parent('#aboutParent')) {
        $('#aboutTopNav a').addClass('active');
    }
});

Ответы [ 2 ]

0 голосов
/ 18 января 2011
$(document).ready(function() {
var href_array= window.location.pathname.split("/");
var part_num = 0;
while (part_num < href_array.length) {
    lastPart = href_array[part_num];
    part_num += 1;
}
//alert( lastPart);

$('#navigationArea a[href*="' + lastPart + '"]').parentsUntil('.sub').addClass('active');

});

В моем примере ".sub" - это класс, но я думаю, что он также будет работать с вашим идентификатором.

0 голосов
/ 18 января 2011

Используйте обход дерева jQuery для удовлетворения ваших потребностей: http://api.jquery.com/category/traversing/tree-traversal/

...