【问题标题】:Bootstrap 4 navbar dropdown menu item not clickable on mobile devicesBootstrap 4导航栏下拉菜单项在移动设备上不可点击
【发布时间】:2016-11-25 10:01:20
【问题描述】:

我有一个正在使用 Bootstrap 4 开发的网站。从移动设备查看时,菜单项已折叠为 3 条,菜单项不可点击。我已经尝试按照引导文档建议的方式实现它,但它仍然无法正常工作。我尝试了其他一些调整,但无济于事。

我在这里做错了什么(除了使用 alpha 版本)?

您可以在此处进行测试:http://www.wrestlestat.com

请记住,如果您只是将浏览器的大小从桌面调整为移动大小,一切正常,只有在移动设备上查看时才不起作用。

这是导航菜单的代码:

<nav class="navbar navbar-fixed-top navbar-dark bg-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
            <button class="navbar-toggler pull-xs-right hidden-sm-up" type="button" data-toggle="collapse" data-target="#collapsemenus">
                ☰
            </button>
            <a href="/" class="navbar-brand">
                <img alt="WrestleStat" src="/images/WrestleStat.png" height="35" asp-append-version="true" />
            </a>
        </div>
        <div id="collapsemenus" class="collapse navbar-toggleable-xs">
            <ul class="nav navbar-nav">
                <li class="nav-item m-l-1 hidden-xs-down">
                    <a class="nav-link donate" type="button">Donate</a>
                </li>
                <li class="nav-item hidden-sm-up">
                    <a class="nav-link donate" type="button">Donate</a>
                </li>
                <li class="nav-item">
                    <a href="/team/select" class="nav-link" type="button">Teams</a>
                </li>
                <li class="nav-item btn-group">
                    <a class="dropdown-toggle nav-link" type="button" id="dropdown1" data-toggle="dropdown">Fantasy</a>
                    <div class="dropdown-menu background-black">
                        <a href="#" class="dropdown-item">Pick'Em</a>
                        <!--/fantasy/thisweek-->
                        <a href="#" class="dropdown-item">Tourney Pool</a>
                        <!--/tourneypool/main-->
                    </div>
                </li>
                <li class="nav-item btn-group">
                    <a class="dropdown-toggle nav-link" type="button" id="dropdown2" data-toggle="dropdown">Compare</a>
                    <div class="dropdown-menu background-black">
                        <a href="/compare/dual" class="dropdown-item">Dual Lineup</a>
                        <a href="/compare/wrestler" class="dropdown-item">Wrestlers</a>
                    </div>
                </li>
                <li class="nav-item btn-group">
                    <a class="dropdown-toggle nav-link" type="button" id="dropdown3" data-toggle="dropdown">Rankings</a>
                    <div class="dropdown-menu background-black">
                        <a href="/rankings/wrestler" class="dropdown-item">Wrestlers</a>
                        <a href="/rankings/weight/125" class="dropdown-item p-l-3 hidden-sm-down">125</a>
                        <a href="/rankings/weight/133" class="dropdown-item p-l-3 hidden-sm-down">133</a>
                        <a href="/rankings/weight/141" class="dropdown-item p-l-3 hidden-sm-down">141</a>
                        <a href="/rankings/weight/149" class="dropdown-item p-l-3 hidden-sm-down">149</a>
                        <a href="/rankings/weight/157" class="dropdown-item p-l-3 hidden-sm-down">157</a>
                        <a href="/rankings/weight/165" class="dropdown-item p-l-3 hidden-sm-down">165</a>
                        <a href="/rankings/weight/174" class="dropdown-item p-l-3 hidden-sm-down">174</a>
                        <a href="/rankings/weight/184" class="dropdown-item p-l-3 hidden-sm-down">184</a>
                        <a href="/rankings/weight/197" class="dropdown-item p-l-3 hidden-sm-down">197</a>
                        <a href="/rankings/weight/285" class="dropdown-item p-l-3 hidden-sm-down">285</a>
                        <div class="dropdown-divider hidden-xs-down"></div>
                        <a href="/rankings/dual" class="dropdown-item">Dual Team</a>
                        <a href="/rankings/tournament" class="dropdown-item">Tournament Team</a>
                        <div class="dropdown-divider hidden-xs-down"></div>
                        <a href="#" class="dropdown-item">Statistical</a>
                    </div>
                </li>
                <li class="nav-item btn-group">
                    <a class="dropdown-toggle nav-link" type="button" id="dropdown4" data-toggle="dropdown">Profile</a>
                    <div class="dropdown-menu background-black">
                        <a href="/account/login" class="dropdown-item">Login</a>
                        <a href="/account/register" class="dropdown-item">Register</a>
                        <a href="/account/forgotpassword" class="dropdown-item">Forgot Password</a>
                    </div>
                </li>
            </ul>
        </div>
    </div>
</nav>

这是一个 bootply,但可能效果不佳,因为它必须在移动设备上才能正常工作。

http://www.bootply.com/9Z9oycwCSh

【问题讨论】:

  • 使用 Chrome 的 display-as-mobile 和我的 Android 的 Chrome 测试,无法重现。所有链接都可以正常工作。
  • @Polyov 对,因为它在台式机上运行良好。只有当您从移动设备运行时它才会停止工作(我正在使用 iPhone 进行测试)。我在 iPhone 上运行 Safari 还是 Chrome 都没关系。
  • 您可能希望参考 github.com/twbs/bootstrap/issues/17532,因为它讨论了 Bootstrap 4 以及与 navbar 正确处理 dropdown 菜单相关的问题。它的 TLDR 听起来像 4(这是一个不适合实时站点的 alpha 版本)还不支持这种组合。
  • 在下一个 alpha/beta 版本中解决此问题之前是否有任何解决方法?

标签: jquery css twitter-bootstrap twitter-bootstrap-4 bootstrap-4


【解决方案1】:

我发现这不是 Bootstrap 4 的错误。这是我配置下拉锚元素的方式的一个缺陷。这是修正后的版本:

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

区别在于:

  1. 已删除type="button"
  2. 已添加href="#"
  3. 已添加role="button"
  4. 已添加aria-haspopup="true"
  5. 已添加aria-expanded="false"

这 5 件事解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    相关资源
    最近更新 更多