下载菜单未显示在iPhone Bootstrap 4 Alpha上

时间:2018-02-26 18:40:00

标签: javascript jquery html css twitter-bootstrap

我无法在iPhone上使用Bootstrap 4的4.0.0-alpha.6版本(但不是Android版)。我们的导航栏有两个下拉菜单,可以在桌面上正常工作(以及用于测试响应活动的开发人员工具)。但是当在iPhone上查看时,下拉菜单不起作用。看起来javascript存在问题 - 点击下拉列表应该添加“show”类,但它不会在iPhone上执行。通过使用开发人员工具操作DOM来手动添加“show”类会带来预期的CSS更改并正确显示下拉列表。任何人都可以建议什么可能保持javascript在这里工作?我们在控制台中没有收到任何错误。

我们的存储库是here。我们正在运行Jekyll和Ruby 2.3.3。

有问题的特定HTML代码段未触发JavaScript,是来自repo的/_includes/menu.html:

<nav class="navbar navbar-toggleable-sm navbar-light bg-faded">
  <!--<div class="container">-->
  <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <a class="navbar-brand" href="{{site.baseurl}}{{site.data.snippets.menu-home[page.lang]}}">The Programming Historian</a>
  <div class="collapse navbar-collapse" id="navbarNavDropdown">
    <ul class="nav navbar-nav ml-auto w-100 justify-content-end">
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            {{site.data.snippets.menu-about[page.lang]}}
          </a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
            <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-about-overview[page.lang].link}}">{{site.data.snippets.menu-about-overview[page.lang].title}}</a>
            <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-about-team[page.lang].link}}">{{site.data.snippets.menu-about-team[page.lang].title}}</a>
            <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-about-research[page.lang].link}}">{{site.data.snippets.menu-about-research[page.lang].title}}</a>
          </div>
        </li>

      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          {{site.data.snippets.menu-contribute[page.lang]}}
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink2">
          <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-contribute-overview[page.lang].link}}">{{site.data.snippets.menu-contribute-overview[page.lang].title}}</a>
          <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-contribute-feedback[page.lang].link}}">{{site.data.snippets.menu-contribute-feedback[page.lang].title}}</a>
          <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-contribute-review[page.lang].link}}">{{site.data.snippets.menu-contribute-review[page.lang].title}}</a>
          <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-contribute-write[page.lang].link}}">{{site.data.snippets.menu-contribute-write[page.lang].title}}</a>
          <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-contribute-edit[page.lang].link}}">{{site.data.snippets.menu-contribute-edit[page.lang].title}}</a>
          <a class="dropdown-item" href="{{site.baseurl}}{{site.data.snippets.menu-contribute-retirement[page.lang].link}}">{{site.data.snippets.menu-contribute-retirement[page.lang].title}}</a>
        </div>
      </li>

      <li class="nav-item">
        <a class="nav-link" href="{{site.baseurl}}{{site.data.snippets.menu-lessons[page.lang].link}}">{{site.data.snippets.menu-lessons[page.lang].title}}</a>
      </li>

      <li class="nav-item">
        <a class="nav-link" href="{{site.baseurl}}{{site.data.snippets.menu-blog[page.lang].link}}">{{site.data.snippets.menu-blog[page.lang].title}}</a>
      </li>

      <li class="nav-item">
        <a class="nav-link lang" href="{{site.baseurl}}{{site.data.snippets.menu-lang[page.lang].link}}">{{site.data.snippets.menu-lang[page.lang].title}}</a>
      </li>


    </ul>
  </div>
  <!--</div>-->
</nav>

我们的包含所有javascript引用的头文件位于/_includes/header.html:

  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    {% include metadata.html %}

    {% include twitter-card.html %}

    <!-- Mobile viewport optimized: h5bp.com/viewport -->
    <meta name="viewport" content="width=device-width">

    <link href="{{site.baseurl}}/css/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet">

    <link href='{{site.baseurl}}/feed.xml' rel='alternate' type='application/atom+xml'>

    <title>{{ page.title }} | {{ site.name }}</title>

    <link href="https://fonts.googleapis.com/css?family=Crete+Round|Open+Sans|Quattrocento|Roboto|Roboto+Condensed" rel="stylesheet">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
    <link rel="stylesheet" href="{{site.baseurl}}/css/github.css">
    <link rel="stylesheet" href="{{site.baseurl}}/css/style.css">

    <script
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>

    <script type="text/javascript" src="{{site.baseurl}}/js/ext_links.js"></script>
    <script type="text/javascript" src="{{site.baseurl}}/js/header_links.js"></script>
    <script type="text/javascript" async
      src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    </script>

  </head>

我们正在运行Bootstrap JS和CSS的4.0.0-alpha.6版本。我已经探讨了回复herehere,但这些变通办法似乎没有用。谷歌搜索建议这是当时BS4-alpha的一个已知问题,所以我尝试将我们的Bootstrap版本升级到最新的稳定版本,根据BS4可用文档here。但是,这并不能解决问题,而且还会引入这种迁移所期望的其他样式问题。所以我现在已经不再迁移了。如果这是最好的解决方案,那么在这种迁移中可能会丢失的任何指导都会有所帮助。

非常感谢任何帮助,我很乐意提供任何进一步的背景或代码。

1 个答案:

答案 0 :(得分:0)

如果将来帮助其他人,我可以通过调整代码here来实现这一目标。该链接提供了一些javascript来覆盖功能,但我必须调整jQuery选择器以使代码适合我们设置的html结构。