2010-10-29 71 views
0

我有一個從列表項錨點觸發的面板隱藏/顯示設置。很棒。問題是,我還在站點導航中有一個下拉菜單,也需要從站點上的任何頁面觸發每個面板。就像說的那樣,我在產品頁面上有面板(按此順序),「硬件」,「軟件」,「附件」。因此,當我在關於頁面上,點擊「軟件」時,預期的結果是將我帶到產品頁面並打開「軟件」面板。下面是我對面板jQuery腳本:傳遞一個變量來觸發隱藏/顯示面板

$("ul#product-type li a").click(function() { 
$("ul#product-type li").removeClass("selected"); 
$(this).parent().addClass("selected"); 
var currentTab = $(this).attr("href"); 
    $("div.panel").hide(); 
    $(currentTab).show(); 
return false; }); 

下拉導航標記:

<ul id="nav"> 
<li><a href="/products/#hardware"><span>Hardware</span></a></li> 
<li><a href="/products/#software"><span>Software</span></a></li> 
<li><a href="/products/#accessories"><span>accessories</span></a></li> 

我試着加入導航選擇的點擊功能,但不起作用。任何想法或建議將非常感激。

乾杯, 瑞安

回答

1

href不是一個有效的選擇,因爲$("/products/#hardware")是行不通的。然而使用.hash屬性是完美的,因爲你會得到$("#hardware")。像這樣使用它:

$("ul#product-type li a").click(function() { 
    $("ul#product-type li").removeClass("selected"); 
    $(this).parent().addClass("selected"); 
    $("div.panel").hide(); 
    $(this.hash).show(); 
    return false; 
}); 
+0

謝謝尼克!這很好。我的點擊函數現在看起來像: $(「#nav li ul li a,ul#product-type li a」)。click(function(){ 您認爲有一種方法可以保持「selected」類在點擊#nav鏈接時工作?現在,它只是從ul#product-type li中刪除「selected」類並將其添加到「nav li ul li」。 – 2010-10-29 18:50:11

+1

@Ryan - 我會更改'$( (「選擇」);'到'$(「ul#product-type li」)。不是($(this).parents())。removeClass(「selected」) ;'如果這就是你想要的,就排除母鏈。 – 2010-10-29 18:59:55