单击项目上的隐藏引导下拉菜单

Posted

技术标签:

【中文标题】单击项目上的隐藏引导下拉菜单【英文标题】:hide bootstrap dropdown menu on item is clicked 【发布时间】:2014-10-26 12:49:24 【问题描述】:

我有以下下拉菜单

<li class="dropdown menustatus open" id="user-status">
  <a class="dropdown-toggle" href="#">
    <div class="online-status" style="display: none;"></div>
    <div class="busy-status" style=""></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>

当用户像这样点击#online-status 或#busy-status 时,我正在尝试删除“open”类:

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


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

我也试过这种方式:

$("#busy-status").click(function ()
  $( "li.dropdown.menustatus" ).find( "open" ).removeClass("open");
);

$("#online-status").click(function ()
  $( "li.dropdown.menustatus" ).find( "open" ).removeClass("open");
);

但我无法隐藏下拉菜单。

请有任何想法或建议。

【问题讨论】:

【参考方案1】:

试试这个:

DEMO

 $("#online-status").click(function () 
            $("#user-status").removeClass("open");
        );


        $("#busy-status").click(function () 
            $("#user-status").removeClass("open");
        );

【讨论】:

【参考方案2】:

输入preventDefault() 停止默认行为:

$("#online-status").click(function (e)
     e.preventDefault();
    $(".busy-status").hide();
    $(".online-status").show();
    $("li.open").removeClass("open");
  );


  $("#busy-status").click(function (e)
      e.preventDefault();
    $(".online-status").hide();
    $(".busy-status").show();
    $("li.open").removeClass("open");
  );

WORKING FIDDLE

【讨论】:

以上是关于单击项目上的隐藏引导下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

在角度引导 ui 中单击时关闭下拉菜单

在 div 下拉菜单之外单击时隐藏,但未显示切换

单击下拉菜单按钮时引导打开链接

单击触摸设备 (iPad/iPhone) 上的任意位置以隐藏由 .hover() 切换的下拉菜单

引导下拉菜单在单击时关闭

通过单击外部(组件)在 Vuejs 中隐藏下拉菜单