2012-03-28 5 views
0

Я использую этот код JQuery для выделения активного меню:JQuery активного выпуск меню при использовании фильтров

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

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

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

+0

Почему бы не позволить серверу служить вам с 'active' класса вместо того, чтобы использовать JQuery? – ShadowScripter

+0

можете ли вы предоставить демо-код вашей проблемы? –

ответ

0
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-кода (после последнего дел)

setPage()
Смежные вопросы