【问题标题】:Foundation 5 top-bar dropdown menu randomly doesn't work, but then works after refreshing the pageFoundation 5顶栏下拉菜单随机不起作用,但刷新页面后才起作用
【发布时间】:2014-01-08 13:40:31
【问题描述】:

我的 rails 应用程序(rails 4,ruby 2)中有一个使用 Foundation 5 的下拉菜单。大多数情况下,下拉菜单工作正常,但有时它(看似随机)不会下拉。我已经尝试使用“悬停”和“可点击”并得到相同的随机故障。任何时候它都不起作用,只需刷新页面就可以解决问题,但这对于我想避免的用户来说仍然是一个问题。有什么建议吗?

这段代码在views/layouts/_header.html.erb,渲染在application.html.erb

<nav class="top-bar" data-topbar data-options="is_hover: false">
  <ul class="title-area">
    <li class="name">
      <h1><%= link_to 'What Key Am I In?', root_path %></h1>
    </li>
    <li class="toggle-topbar">Menu</li>
  </ul>

  <section class="top-bar-section">
    <!-- Right Nav Section -->
    <ul class="right">
      <li><a href="#">All Keys</a></li>
      <li><%= link_to 'All Chords', chords_path %></li>
      <li><%= link_to 'All Notes', notes_path %></li>
      <li class="divider"></li>
      <li class="has-dropdown">
        <% if current_user.nil? %>
          <li><%= link_to 'Sign up!', new_user_registration_path %></li>
          <li><%= link_to 'Log in', new_user_session_path %></li>
        <% else %>
          <a href="#"><%= current_user.username %></a>
          <ul class="dropdown">
            <li><%= link_to 'View profile', current_user %></li>
            <li><%= link_to 'Edit profile', edit_user_registration_path(current_user) %></li>
            <li class="divider"></li>
            <li><%= link_to 'Chords Pending Approval', chords_pending_approval_path %>
            <li class="divider"></li>
            <li><%= link_to "Logout", destroy_user_session_path, method: :delete %></li>
          </ul>
        <% end %>
      </li>
    </ul>
  </section>
</nav>

【问题讨论】:

    标签: jquery css ruby-on-rails ruby zurb-foundation


    【解决方案1】:

    我关闭了 Turbolinks,到目前为止它似乎还在工作。看起来这可能是导致问题的原因,这并不奇怪,因为我遇到了由于 Turbolinks 而无法按预期工作的问题。

    【讨论】:

      【解决方案2】:

      您是否在foundation.js 包含后添加了以下代码,您是否有任何其他正在使用的javascript 插件?我以前使用 JQuery 图像滑块遇到过这个问题,并通过在大括号之间添加和放置我的代码来修复它。希望这是一些有用的,如果不是,我会对此做更多的研究,希望能有所帮助!

           $(window).load(function() {}
      

      你也应该在文件的底部有这个。

       <script src="js/foundation/foundation.js"></script>
       <script src="js/foundation/foundation.topbar.js"></script>
      

      【讨论】:

      • 不,但我的application.js 文件中有这个: //= 需要基础 $(function(){ $(document).foundation(); });
      • 好吧,我忘了你用的是rails,你实际上不应该在你的js中需要那行。只要foundation.js 和foundation.topbar.js 在您的app/assets/javascripts 中并且您的foundation.css 在您的app/assets/stylesheets 文件夹中,rails 应该会自动加载它们。现在就您的实际问题而言,当我有时间时,我将使用基础制作一个快速应用程序,看看我们是否可以解决这个问题。另请注意,您只需要常规文件,没有缩小版本,因为 rails 会为您缩小它们。
      • 太好了,谢谢!顶栏仍然有这个问题,我现在正在使用我添加的链接下拉菜单(它发生在顶栏出现问题的同时,这两个问题都可以通过刷新页面来解决),这导致我相信点击监听器没有被正确添加。再次感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多