隐藏主导航,仅在特定分类页面上显示

问题描述:

我正在处理的网站有3个品牌,因此需要3组不同的导航。隐藏主导航,仅在特定分类页面上显示

我想要做的是在每个类别页面上显示特定的菜单ID。

E.g.

#CSmainMenu to display only when its on www.site.com/caroline-sills/ 
#SillsmainMenu to display only when its on www.site/com/sills/ 
#ClopemainMenu to display only when its on www.site/calliope/ 

对于网站的其他部分,这3个菜单不能在别处看到,例如主页,关于以及任何其他静态页面。

我试过设置一个,但我没有运气。

这里是我的代码:

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#CSmainMenu").hide(); 
    }); 

    if (window.location.pathname.indexOf("/caroline-sills/") == 0) {  
    $("#CSmainMenu").show(); 
    } 
</script> 

我在做什么错?

+0

这段代码隐藏菜单? 我的意思是隐藏作品? 如果是的话,我会给你的答案 – Milad 2014-11-23 21:26:27

试试这个

$(document).ready(function() { 
    $("#CSmainMenu").hide(); 
if (window.location.pathname.indexOf("/category1/") !== -1) 
{ 
    $("#CSmainMenu").show(); 
} 
    if (window.location.pathname.indexOf("/category2/") !== -1) 
    { 
     $("#CSmainMenu2").show(); 
    }   
}); 
+0

这个作品,但我如何隐藏#CSmainMenu2在加载时,我添加一个逗号这样$(document).ready(function(){$(“#CSmainMenu”,“#CSmainMenu2 “).hide(); if(window.location.pathname.indexOf(”/ category1 /“)!== -1){$(”#CSmainMenu“)。show();} if(window.location.pathname .indexOf(“/ category2 /”)!== -1){$(“#CSmainMenu2”)。show();}}); – Jc0807 2014-11-23 21:58:21

+0

编号将函数分隔线,如下所示: $(“#CSmainMenu”)。hide(); $(“#CSmainMenu2”)。hide(); – 2014-11-23 21:59:14

+0

我给了这个去,但只隐藏#CSmainMenu,请看我下面的评论。 – Jc0807 2014-11-23 23:01:54

如果你的路径名是正确的,我想你只是搞砸了大括号。 尽量把if语句的jquery.ready函数里,像我的例子一样

$(document).ready(function() { 
 
    $("#CSmainMenu").hide(); 
 
    if (window.location.pathname.indexOf("/js") == 0) { $("#CSmainMenu").show(); } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="CSmainMenu">CSMainMenu</div>

<script type="text/javascript"> 
     (function(){ 
     $("#CSmainMenu").hide(); 
    if (window.location.pathname.replace('/',"") =="caroline-sills") { $("#CSmainMenu").show(); } 

     })(); 

    </script> 

而不是做DOM通过JS操作你不能添加一个类到每个特定页面的正文,并通过CSS隐藏/风格的导航?这将是一个更快,更有效的方式。

别介意我得到它的工作,我想通了,有一个“ - ”从第二pathname.indexOf值丢失

<script type="text/javascript"> 
    jq(document).ready(function() { 
    jq("#CSmainMenu").hide(); 
    jq("#SillsmainMenu").hide(); 
if (window.location.pathname.indexOf("/caroline-sills/") !== -1) 
{ 
    jq("#CSmainMenu").show(); 
} 
    if (window.location.pathname.indexOf("/sills/") !== -1) 
    { 
     jq("#SillsmainMenu").show(); 
    }   
}); 
</script> 

再次感谢