Активное меню JQuery. Проблема при использовании фильтров. - PullRequest
0 голосов
/ 28 марта 2012

Я использую этот код jQuery для выделения активных меню:

$(function(){
   var path = location.pathname.substring(1);
   if ( path )
     $('#topnav a[href$="' + path + '"]').attr('class', 'active');
 });

Работает нормально.Проблема на одной из страниц меню, я использую алфавитный фильтр.Поэтому, когда я нажимаю на любой из алфавитов, чтобы отфильтровать пользователей, выделение отключается.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 28 марта 2012
function extractPageName(hrefString) {
    var arr = hrefString.split('/');
    return (arr.length < 2) ? hrefString : arr[arr.length - 2].toLowerCase() + arr[arr.length - 1].toLowerCase();
}

function setActiveMenu(arr, crtPage) {
    for (var i = 0; i < arr.length; i++) {
        if (extractPageName(arr[i].href) == crtPage) {
            if (arr[i].parentNode.tagName != "DIV") {
                arr[i].className = "selected";
                arr[i].parentNode.className = "selected";
            }
        }
    }
}

function setPage() {
    hrefString = document.location.href ? document.location.href : document.location;

    if (document.getElementById("navigation") != null)
        setActiveMenu(document.getElementById("navigation").getElementsByTagName("a"), extractPageName(hrefString));
}

и добавьте эту функцию в конце HTML-кода (после последнего div)

setPage ()
...