单击时会显示 Foundation 6 菜单图标 link

Foundation 6 menu icon been show on click link

我在 Rails 4 上使用 foundation 6 和 scss 制作了这个顶部栏菜单。 问题是,只要您单击菜单中的任何 link,菜单图标(汉堡包)就会出现,但它不应该出现,因为它是全屏的,它也会停止响应汉堡包图标中的 onclick 事件。这是一个错误还是我做错了什么?

               <div class="top-bar">
            <div class="top-bar-title">
                <div>
                   <%= link_to image_tag("logo.png", alt: "PeopleWare SRL"), page_path('index') %>
                </div>            
              <span data-responsive-toggle="responsive-menu" data-hide-for="medium">
                <button class="menu-icon dark" type="button" data-toggle></button>
              </span>
            </div>
            <div id="responsive-menu">
              <div class="top-bar-right">
                 <ul class="vertical medium-horizontal menu" data-responsive-menu="drilldown medium-dropdown">
                    <li><%= link_to 'Blog', page_path('blog') %></li>
                    <li><%= link_to "Support", "http://soporte.peopleware.do" %></li>
                 </ul>
              </div>
               </div>
        </div>

您可以去这里测试菜单:http://carey.peopleware.do

从版本 6 开始,Foundation 响应式菜单将 title-bar 与 top-bar 分开,您的标记不会反映该更新。为了使响应式菜单起作用,切换需要在标记树中更高。 Responsive Toggle

编译标记的第 28-56 行是:

 <section id="menu" class="menu">
     <div class="row">
    <div class="medium-12 columns">
           <div class="top-bar">
            <div class="top-bar-title">
              <span data-responsive-toggle="responsive-menu" data-hide-for="medium">
                <button class="menu-icon dark" type="button" data-toggle></button>
              </span>
                <div>
                   <a href="/index"><img alt="PeopleWare SRL" src="/assets/logo-345d236755fdd29efe4113717b59043034744758f71f11618e58672f2e0dbc6b.png" /></a>
                </div>            
            </div>
            <div id="responsive-menu">
              <div class="top-bar-right">
                 <ul class="vertical medium-horizontal menu">
                    <!--<li><a href="/blog">Blog</a></li> -->
                <li><a href="/index#services">Services</a></li>
                <li><a href="/jason">Software</a></li>
                    <li><a href="/about">About us</a></li>
                <li><a href="/index#careers">Careers</a></li>
                    <li><a href="/index#contact">Contact us</a></li>
                <!--<li><a href="http://soporte.peopleware.do">Support</a></li>-->
                 </ul>
              </div>
               </div>
        </div>
    </div>
     </div>
  </section>

top-bar-title div 需要从 top-bar 中删除并重命名为 title-bar-title(感谢 Zurb 的命名)。此 div 需要属于 div 分类 title-bar。此外,您的 title-bar-title 不应包含按钮或 png 图像。

所以这个:

<div class="top-bar">
  <div class="top-bar-title">
    <span data-responsive-toggle="responsive-menu" data-hide-for="medium">
      <button class="menu-icon dark" type="button" data-toggle></button>
    </span>
    <div>
      <a href="/index"><img alt="PeopleWare SRL" src="/assets/logo-345d236755fdd29efe4113717b59043034744758f71f11618e58672f2e0dbc6b.png" /></a>
    </div>            
  </div>
  <div id="responsive-menu">

会变成:

<div class="title-bar" data-responsive-toggle="responsive-menu" data-hide-for="medium">
    <button class="menu-icon dark" type="button" data-toggle></button>
  <div class="title-bar-title">PeopleWare</div>
</div>

<div class="top-bar" id="responsive-menu">
  <div>
    <a href="/index"><img alt="PeopleWare SRL" src="/assets/logo-345d236755fdd29efe4113717b59043034744758f71f11618e58672f2e0dbc6b.png" /></a>
  </div>

除非您实际上是想在响应式菜单上获取图像。

无论如何,我使用控制台解决了其余问题:

$(document).foundation()

对于 Zurb,您需要告诉 javascript 执行。一旦那是 运行 我就可以切换菜单了。您可能需要在您的 coffeeScript 某处

$ ->
  $(document).foundation()

这将等到 dom 准备好并 运行 基础。

我遇到了同样的问题。我只是设置 css 规则:

@media only screen and (min-width: 641px) {
    .title-bar {
        display: none;
    }
}