隐藏主导航并仅在特定类别页面上显示

时间:2014-11-23 21:19:46

标签: javascript jquery html

我工作的网站有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>

我做错了什么?

5 个答案:

答案 0 :(得分:0)

如果你的路径名是正确的,我想你只是搞砸了大括号。 尝试将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>

答案 1 :(得分:0)

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

       })();

  </script>

答案 2 :(得分:0)

试试这个

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

答案 3 :(得分:0)

不是通过JS进行DOM操作,你可以不为每个特定页面添加一个类,并通过CSS隐藏/设置导航样式吗?这将是一种更快更有效的方法。

答案 4 :(得分:0)

没关系我让它工作,我发现有一个&#34; - &#34;从第二个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>

再次感谢