Bootstrap v3.3.6下载无法使用移动菜单

时间:2016-05-16 10:15:21

标签: html mobile drop-down-menu twitter-bootstrap-3

我几天来试图解决这个问题。我找到了这么多解决方案,但对我来说没有任何作用。 我使用bootstrap 3.3.6,我想使用下拉菜单。 代码在桌面屏幕上正常工作,但不适用于移动屏幕。

这是一个捕获:

enter image description here

当我点击"产品"时,全局菜单消失,我找不到子菜单。

这是我的代码:

<!-- Navigation  -->
<nav class="navbar navbar-default navbar-fixed-top shadoww">
   <div class="container">
          <div class="navbar-header page-scroll">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand page-scroll" href="#page-top" style="width:250px;"><img src="img/logo.png" width="60%" style="margin-top: -4%;"></a>
                </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
        <nav class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav">
                   <li class="hidden">
                      <a href="#page-top"></a>
                   </li>
                   <li>
                      <a id="translate0" class="page-scroll move" href="#home">Home</a>
                   </li>
                   <li class="dropdown">
                        <a id="translate01" href="#" class="dropdown-toggle move multiselect" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Product<span class="caret"></span></a>
                        <ul class="dropdown-menu" role="menu">
                           <li><a class="page-scroll move" href="#product">Description</a></li>
                           <li role="separator" class="divider"></li>
                           <li><a id="translate39" class="page-scroll move" href="#compat">Compatibility</a></li>
                        </ul>    
                   </li>
                   <li><a id="translate02" class="page-scroll move" href="#diapo">Gallery</a></li>
                   <li><a id="translate03" class="page-scroll move" href="#team">Founder</a></li>
                   <li><a class="page-scroll move" href="#contact">Contact</a></li>
                   <li><a id="popup" class="move" href="javascript://">Shop</a></li>
                   <li><a class="forum move" href="/forum/index.php" target="_blank">Forum</a></li>
                </ul>
                <ul class="nav navbar-nav navbar-right">
                   <li>
                   <a id="flagA" class="navbar-brand" href="javascript:doTranslate('fr')" style="width:80px;"><img id="flag0" onclick="javascript:changeImage('fra')" src="img/France-Flag-50.png" class='changer' width="55%" style="margin-top: -4%;"></a>
                   </li>
                   <li>
                   <a id="flagB" class="navbar-brand" style="width:80px;"><img id="flag1" src="img/UK-Flag.png" class='changer' width="55%" style="margin-top: -4%;"></a>
                   </li>
                </ul>
        </nav>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"></div>
        <div id="successn"></div>
</nav>

我尝试了stopPropagation解决方案,但我认为这不是一个合适的解决方案。我也试过this solution但是没办法,仍然是同样的反应。

有人有另一个想法吗? (我知道,关于这个问题的问题很多......)Thx

4 个答案:

答案 0 :(得分:2)

我想我终于找到了一个解决方案:How to make twitter bootstrap menu dropdown on hover rather than click

使用鼠标它(相对)容易获得链接,我还没有尝试使用真正的手机。但这是我找到的最佳解决方案。

1)在css文件中添加这些行。

ul.nav li.dropdown:hover > ul.dropdown-menu {
display: block;    
}
@media (min-width: 979px) {
  ul.nav li.dropdown:hover > ul.dropdown-menu {
    display: block;
  }
}

2)在html文件中删除此类:

<b class="caret"></b>    <-- remove this line

答案 1 :(得分:0)

我找到的错误。

我。 data-toggle="collapse" data-target=".navbar-collapse"的属性在哪里?

DEMO

答案 2 :(得分:0)

我的问题是,在我的网站的移动版本中,只要我点击主链接,下拉菜单就会出现并消失。我所做的是有点妥协,但它的确有效。文件bootstrap-dropdown.js有一个名为clearMenus的函数,它关闭下拉菜单。我所做的是确保黑客不适用于非移动设备。现在发生的是,一旦您点击下拉链接,它就不会关闭。对于移动设备来说这是一个好主意,但它对平板电脑来说并不好。

 function clearMenus() {
    $(toggle).each(function () { var isMobile = false;
        // device detection 
if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 
    || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) 
{ isMobile = true; }
   if(! isMobile) { getParent($(this)).removeClass('open')
 } })
  }

答案 3 :(得分:0)

不要将bootstrap.min.js保留在头文件或页脚文件中,而只保留在要下拉的文件中。

示例: 将Bootstrap.min.js保留在bootom的index.php中。然后在移动vesrion中对其进行检查。