如何让 bootstrap 导航 top-level 按钮可点击 link 用于桌面而非移动设备?

How do you make bootstrap nav top-level button clickable link for desktop but not mobile?

Bootstrap 的默认菜单行为是作为一个激活器,非常适合移动设备,但如果您希望 top-level 按钮可点击为 link,则不适用于台式机同时能够在悬停时激活下拉菜单 将 'disabled' 添加到 link class 可以使桌面正常工作,但会破坏移动设备,小型设备,因为下拉菜单不再扩展,只需加载URL.

为了在桌面上点击鼠标悬停,我在样式表中添加了推荐的 CSS。

/* iPad & larger display on hover */
@media (min-width: 768px) {
  ul.nav li.dropdown:hover ul.dropdown-menu {
    display: block;
  }
}

我将添加禁用 class 的 link 导航代码设置为:

<a href="somepage.php" class="dropdown-toggle disabled" data-toggle="dropdown" role="button" aria-expanded="false">Some Page <span class="caret"></span></a>

以上内容适用于 768 像素或更宽的屏幕。我想不通的是如何禁用小型设备的下拉菜单 class。如果它在那里,则单击该项目将加载页面 (somepage.php),而不是在 somepage.php 下显示 sub-items。

扩展菜单代码如下:

<ul class="nav navbar-nav">
  <li class="dropdown <?php if ( $this_file == "somepage.php" ) { echo ' active '; } ?>">
    <a href="somepage.php" class="dropdown-toggle disabled" data-toggle="dropdown" role="button" aria-expanded="false">Some Page <span class="_caret"></span></a>
    <ul class="dropdown-menu min-width" role="menu">
      <li class="mobile-only"><a href="somepage.php" <?php if ( $this_file == "somepage.php" ) { echo "class=\"active\""; } ?>>Some Page</a></li>
      <li><a href="item2.php" <?php if ( $this_file == "item2.php" ) { echo "class=\"active\""; } ?>>Item 2</a></li>
      <li><a href="item3.php" <?php if ( $this_file == "item3.php" ) { echo "class=\"active\""; } ?>>Item 3</a></li>
    </ul>
  </li>
  ...
</ul>

mobile-only 项的目的是在 parent 仅用作点击激活器后,为访问者提供进入页面的选项。

我尝试在样式表中修改 bootstrap.css 禁用 class 但这对移动问题没有影响。我搜索了 bootstrap.js 文件并找到了一些对 'disabled' 的引用,但我对 javascript 的了解还不够多,无法解决这个问题。

这个怎么样?仅当 >768px 时才使活动的可见,如果 <768px 则使禁用的可见。

<a href="somepage.php" class="visible-xs-12 dropdown-toggle disabled" data-toggle="dropdown" role="button" aria-expanded="false">Some Page <span class="caret"></span></a>

<a href="somepage.php" class="hidden-xs-12 dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Some Page <span class="caret"></span></a>

参考这个link(使用hidden-xs和visible-xs)

   <ul class="nav navbar-nav">
      <li class="dropdown <?php if ( $this_file == "somepage.php" ) { echo ' active '; } ?> visible-xs  " >
        <a href="somepage.php" class="dropdown-toggle disabled" data-toggle="dropdown" role="button" aria-expanded="false">Some Page <span class="caret"></span></a>
      </li>
      <li class="dropdown <?php if ( $this_file == "somepage.php" ) { echo ' active '; } ?> hidden-xs">
        <a href="somepage.php" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Some Page <span class="_caret"></span></a>
        <ul class="dropdown-menu min-width" role="menu">
          <li class="mobile-only"><a href="somepage.php" <?php if ( $this_file == "somepage.php" ) { echo "class=\"active\""; } ?>>Some Page</a></li>
          <li><a href="item2.php" <?php if ( $this_file == "item2.php" ) { echo "class=\"active\""; } ?>>Item 2</a></li>
          <li><a href="item3.php" <?php if ( $this_file == "item3.php" ) { echo "class=\"active\""; } ?>>Item 3</a></li>
        </ul>
      </li>

    </ul>