2010-10-29 44 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