我正在使用此jQuery代码突出显示活动菜单:
$(function(){
var path = location.pathname.substring(1);
if ( path )
$('#topnav a[href$="' + path + '"]').attr('class', 'active');
});
工作正常。问题出在其中一个菜单页面,我使用的是字母过滤器。因此,当我点击任何字母表来过滤用户时,突出显示就会消失。
如何解决此问题?
答案 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代码的末尾添加此函数(在最后一个div之后)
setPage()