2010-03-15 88 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'); 
});