为什么我的下拉菜单表现奇怪?

时间:2018-03-30 22:31:22

标签: html ruby-on-rails twitter-bootstrap drop-down-menu bootstrap-4

所以我正在创建一个带有导航栏的rails应用程序,位于页面顶部。但是,当我实现以下代码并单击“类别”时,名称不会显示。我还附上一张照片。

<ul class="nav navbar-nav navbar-right">

    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle= "dropdown" role="button"
      aria-expanded="false">Categories <span class="caret"></span></a>
      <ul class="dropdown-menu" role="menu">
        <% Category.all.each do |category| %>
        <li class="<%= 'active' if params[:category] == category.name%>">
          <%= link_to category.name, attractions_path(category: category.name), class: "link"%>
        </li>
        <% end %>
      </ul>
    </li>

menu does not drop down.picture

现在,当我将代码更改为以下内容时,我可以在下拉菜单中看到应显示的项目。我究竟做错了什么?为什么会这样?

<ul class="nav navbar-nav navbar-right">

    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle= "dropdown" role="button"
      aria-expanded="false">Categories <span class="caret"></span></a>
      <ul class="dropdown-toggle" role="menu">
        <% Category.all.each do |category| %>
        <li class="<%= 'active' if params[:category] == category.name%>">
          <%= link_to category.name, attractions_path(category: category.name), class: "link"%>
        </li>
        <% end %>
      </ul>
    </li>

links are there.picture

所以基本上我只是改变了这一行<ul class="dropdown-toggle" role="menu">

为什么我的菜单没有显示所有类别?

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试使用Bootstrap4设置的Bootstrap3导航栏。有一些更改,但您应该能够根据文档中的example重建它:

  • nav中的项目应标有nav-item个类。

  • 您不需要自己添加插入符号(<span class="caret">)。

  • 您的下拉菜单中的项目现在需要用dropdown-item课程标记。

  • 下拉切换应如下所示:

    <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="someId">
    

    而不是:

    <a href="#" class="dropdown-toggle" data-toggle= "dropdown" role="button" aria-expanded="false">
    
  • 下拉菜单应与aria-labelledby="someId"的切换相关联。

将这些放在一起会给你这样的东西:

<ul class="nav navbar-nav navbar-right">
  <li class="nav-item dropdown">
    <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="someId">
      Categories
    </a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="someId">
      <% Category.all.each do |category| %>
        <li class="dropdown-item <%= 'active' if params[:category] == category.name %>">
          <%= link_to category.name, attractions_path(category: category.name), class: "link"%>
        </li>
      <% end %>
    </ul>
  </li>
  ...
</ul>

您当然希望使用合理的内容替换someId