使用jquery隐藏我的菜单

时间:2014-08-11 09:31:21

标签: javascript jquery html css twitter-bootstrap

我有以下bootstrap html菜单:

<ul class="nav navbar-top-links navbar-right">
  <li class="dropdown menustatus">
    <a class="dropdown-toggle" href="#">
      <div class="busy-status"></div>
      <div class="online-status" style="display:none;"></div>
    </a>
    <ul class="dropdown-menu dropdown-user" style="margin-top: 10px;">
      <li class="status">
        <a href="http://localhost:3000/status/online" data-remote="true" id="online-status" style="color:#4b3087;"><i class="fa fa-circle online"></i> Online</a>
      </li>
      <li class="status">
        <a href="http://localhost:3000/status/busy" data-remote="true" id="busy-status" style="color:#4b3087;"><i class="fa fa-circle busy"></i> Busy</a>
      </li>
    </ul>
  </li>
</ul>

我试图在用户点击任何项目时隐藏菜单,如下所示:

$("#online-status").click(function (){
  $(".busy-status").hide();
  $(".online-status").show();
  $("li.dropdown.menustatus.open").removeClass("open");
});

$("#busy-status").click(function (){
  $(".online-status").hide();
  $(".busy-status").show();
  $("li.dropdown.menustatus.open").removeClass("open");
});

但它不起作用。

我也尝试过:

$(".dropdown.menustatus.open").removeClass("open");

$("dropdown.menustatus").removeClass("open");

$(".menustatus").removeClass("open");

$(".open").removeClass("open");

但是我无法隐藏菜单。

我做错了什么。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

#online-status是一个锚。

尝试:

$("#online-status").click(function(e){
  e.preventDefault();
   ....

});

答案 1 :(得分:0)

检查点击事件中其他元素的处理方式:如果需要,您可以以类似的方式使用.hide().show(),甚至.toggle()

$(".menustatus").hide();

选择器的具体程度取决于你决定/找出。

如果你绝对想要以&#34;类的方式做到这一点,我的猜测是你的&#34; .open&#34; class将可见性或显示属性设置为visible / block或类似的东西以显示元素,但是你的&#34; .menustatus&#34;似乎没有隐藏它。我的意思是:如果从元素中删除.open类,则没有任何内容指定是否应该隐藏它。试试这个:

.menustatus {
    display: none;
}

.menustatus.open {
    display: block; // Add !important if needed.
}

更改&#34;阻止&#34;无论你想要什么,只要它不是 none