菜单上的主页链接不突出显示

时间:2010-03-15 13:57:05

标签: menu highlighting breadcrumbs

我的菜单显示点击它时的活动链接,主页链接除外(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');

但这似乎不起作用?

有人有简单的方法来完成它吗? 任何帮助都会受到你们的赞赏。

亲切的问候, ģ

3 个答案:

答案 0 :(得分:1)

在Firebug中我在行}highlight.attr('class', 'active');上得到突出显示未定义,看起来您可能需要纠正上面的If语句周围的括号?

答案 1 :(得分: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');

答案 2 :(得分: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');   
 });