2010-03-15 63 views
0

我的菜单显示除了主页链接(http://www.obsia.com)之外的其他链接时的活动链接。它从未被强调。 我试着玩,但我似乎无法弄清楚。这是我用来突出链接的jQuery代码?菜单上的主页链接不突出显示

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

我也对products pages另一个菜单,在这里我想强调的兄弟姐妹的父母和我们的产品在全球的菜单上。这是产品菜单的jQuery代码:

$(function() { 
var pathname = location.pathname; 
var highlight; 
//highlight home 
if(pathname == "") 
    highlight = $('ul#accordion > li:first > a:first'); 
else { 
    var path = pathname.substring(1); 
    if (path) 
     highlight = $('ul#accordion a[href$="' + path + '"]'); 
}highlight.attr('class', 'active'); 



// hide 2nd, 3rd, ... level menus 
$('ul#accordion ul').hide(); 

// show child menu on click 
$('ul#accordion > li > a.product_menu').click(function() { 
    //minor improvement 
    $(this).siblings('ul').toggle("slow"); 
    return false; 
}); 

//open to current group (highlighted link) by show all parent ul's 
$('a.active').parents('ul').show(); 
$('a.active').parents('h2 a').css({'color':'#ff8833'}); 

//if you only have a 2 level deep navigation you could 
//use this instead 
//$('a.selected').parents("ul").eq(0).show(); 

}); });

我尝试添加此:

 $(this).parents('ul').addClass('active'); 

,但似乎并没有这样的伎俩?

有没有人有一个简单的方法来完成它? 任何帮助,将不胜感激你们。

亲切的问候, 摹

回答

1

我调试了你的Javascript。家庭链接不会突出显示,因为对于主页,location.pathname将被评估为字符串“/”。变量'path'因此被分配空字符串。这意味着变量'highlight'未分配给。

// path is assigned the empty string 
var path = location.pathname.substring(1); 

// evaluating to false 
if (path) { 
    // we never get here 
    highlight = $('ul#accordion a[href$="' + path + '"]'); 
} 

// getting a null pointer exception 
highlight.attr('class', 'active'); 
+0

谢谢斯蒂芬的工作 - 我甚至把括号上的第一条if语句以及:) – strangeloops 2010-03-16 13:54:54

+0

其实只是再次检查,即使在主页上使用更正的代码后,我得到高亮未定义的错误?难道我做错了什么? – strangeloops 2010-03-16 16:32:02

+0

其实只是修复它,谢谢:) – strangeloops 2010-03-16 16:41:08

1

在Firebug中,我得到亮点是上线}highlight.attr('class', 'active');看起来你可能需要更正围绕它上面的if语句括号未定义

+0

谢谢戴夫..我试图解决这个问题。 这是产品菜单 - 有什么提示,为什么全球菜单上的主页链接不会突出显示,而其他所有内容都会显示? – strangeloops 2010-03-15 14:37:27

0

我想出了如何让主页链接在菜单栏中突出显示(这是唯一不会在菜单栏上突出显示的链接)。这是我做的:

$(function(){ 
    var pathname = location.pathname; 
    var path = pathname.substring(1); 
    if(path == "") 
     $('.nav a:first').addClass('active'); 
    else (path) 
    $('.nav a[href$="' + path + '"]').attr('class', 'active'); 
});