【问题标题】:Why is this twitter-bootstrap drop down not working in ruby on rails?为什么这个 twitter-bootstrap 下拉菜单在 ruby​​ on rails 中不起作用?
【发布时间】:2013-09-24 23:22:26
【问题描述】:

这似乎很简单,但我无法弄清楚。出于某种原因,单击下拉菜单不起作用,但 twitter bootstrap 中的其他所有内容都是。我在轨道上使用红宝石。我已经看过 stackoverflow 问题,这些问题说只需将整个 ul 包装在一个带有“下拉菜单”类的 div 中,但这不是必需的。我应该能够在 ul 标签内做到这一点。有任何想法吗?谢谢。

          <li id="fat-menu" class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            Account <b class="caret"></b>
          </a>
          <ul class="dropdown-menu">
            <li><%= link_to "Profile", current_user %></li>
            <li><%=link_to "Settings", '#' %></li>
            <li class="divider"></li>
            <li>
              <%= link_to "Sign out", signout_path, method: "delete" %>
            </li>
          </ul>
        </li>

这是我认为问题所在的主要代码。它可能在下面的某个地方(与上面相同,但取出较少)但我对此表示怀疑:

    <ul class="nav pull-right">
      <li><%= link_to "Home", root_path %></li>
      <li><%= link_to "Help", help_path %></li>
      <% if signed_in? %>
        <li><%= link_to "Users", '#' %></li>
        <li id="fat-menu" class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            Account <b class="caret"></b>
          </a>
          <ul class="dropdown-menu">
            <li><%= link_to "Profile", current_user %></li>
            <li><%=link_to "Settings", '#' %></li>
            <li class="divider"></li>
            <li>
              <%= link_to "Sign out", signout_path, method: "delete" %>
            </li>
          </ul>
        </li>
        <%= "Technically signed in.  should be true.  It is: " + signed_in?.to_s %>

      <% else %>
        <%= "Technically not signed in.  should be false.  It is: " + signed_in?.to_s %>
        <li><%= link_to "Sign in", signin_path %></li>
      <% end %>
    </ul>

这是 application.js 文件

//= require bootstrap
//= require bootstrap-dropdown
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

【问题讨论】:

  • 前几天我在导航栏的下拉菜单中遇到了同样的问题。当我将“//= 需要 twitter/bootstrap”移动为 Application.js 中所需的第一个时,它起作用了。但后来它在生产中不起作用=(,必须把那条线放回原处才能在开发中工作。
  • 是你的
  • 还是不行。 Ghar,我试过了,但它不起作用。 Raghu,它被包裹在
      下,这是一个不同的问题。
  • 你能多展示一点你的代码吗?也许从
  • 开始。>
  • 标签: ruby-on-rails twitter-bootstrap drop-down-menu twitter-bootstrap-rails


    【解决方案1】:

    我终于明白了。 Javascript 没有被正确调用。我删除并重新创建了 application.js 文件,它工作正常。

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题。我从 application.js 禁用了 turbolinks。

      1. application.js删除:

        //= 需要涡轮链接

      2. 从 Gemfile 中移除 turbolinks gem。

      3. 预编译资产:

        捆绑 exec rake 资产:预编译

      4. 将我的应用部署到 Heroku,一切正常。

      【讨论】:

      • 很遗憾直到现在没人支持你。感谢您的回答,turbolinks 给我造成了这个问题。
      猜你喜欢
      相关资源
      最近更新 更多
      热门标签