导航栏折叠 JQuery 未触发 - Bootstrap 3.1.1

Navbar Collapse JQuery not firing - Bootstrap 3.1.1

我知道这个问题已经被问过很多次了,但是我试过的所有答案都没有用。

我想为基于 Bootstrap 3.1.1 和 Shopify 的主题创建一个超级菜单。

菜单已经到位,但是我无法让菜单折叠!它只是在页面加载时停留在打开状态。

它在这个 Bootply

上运行完美

但是,在我的 staging server (Shopify) 上,它无法正常启动。 (密码:lukeskywalker

Header:

{{ 'bootstrap.css' | asset_url | stylesheet_tag }}
{{ 'style.css' | asset_url | stylesheet_tag }}

标记:

<header class="main-header container-fluid">
 <div class="row top-header">

 <div class="col-sm-6 col-md-6">
  {% include 'social' %}
 </div>

<div id="utilityNav" class="utility-nav col-sm-6 col-md-6">

    <form id="searchWrapper" class="floatRight" action="/search" method="get">
        <input type="hidden" name="type" value="product" />
        <input id="searchInput" type="text" name="q" placeholder="search..." value="">
        <input id="searchButton" type="submit" value="Search" alt="Search">
    </form><!-- searchWrapper -->

<ul class="user-utility">
    {% if shop.customer_accounts_enabled %}
    {% if customer %}

    <li{% if template contains 'customer' %} class="activePage"{% endif %}><a href="/account" title="Account">Account</a></li>
    <li>{{ "SIGN OUT" | customer_logout_link }}</li>
    {% else %}
    <li{% if template contains 'customer' %} class="activePage"{% endif %}>{{ "SIGN IN" | customer_login_link }} &nbsp;&nbsp; | </li>
    {% endif %}
    {% endif %}

        <li><a href="/cart" id="cartLink">BAG
        {% comment %}{% if shop.customer_accounts_enabled %}<span id="cartLinkBorder">|</span>{% endif %}{% endcomment %}
            <!-- <span id="cartIcon" class="icon-shopping-cart"></span> -->
            <span id="yourCart">{{ cart.item_count }}</span>
        </a>
        </li>
</ul>

    </div><!-- utilityMenu -->
</div> <!-- top header -->

<div class="container">
<nav class="navbar navbar-default">
<div class="navbar-header">
    <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".js-navbar-collapse">
        <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" href="#">MegaMenu</a>
</div>

    <div class="collapse navbar-collapse js-navbar-collapse">
    <ul class="nav navbar-nav">
        <li class="dropdown mega-dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Collection <span class="glyphicon glyphicon-chevron-down pull-right"></span></a>

            <ul class="dropdown-menu mega-dropdown-menu row">
                <li class="col-sm-3">
                    <ul>
                        <li class="dropdown-header">New in Stores</li>
                        <div id="myCarousel" class="carousel slide" data-ride="carousel">
                          <div class="carousel-inner">
                            <div class="item active">
                                <a href="#"><img src="http://placehold.it/254x150/3498db/f5f5f5/&text=New+Collection" class="img-responsive" alt="product 1"></a>
                                <h4><small>Summer dress floral prints</small></h4>
                                <button class="btn btn-primary" type="button">49,99 €</button> <button href="#" class="btn btn-default" type="button"><span class="glyphicon glyphicon-heart"></span> Add to Wishlist</button>
                            </div><!-- End Item -->
                            <div class="item">
                                <a href="#"><img src="http://placehold.it/254x150/ef5e55/f5f5f5/&text=New+Collection" class="img-responsive" alt="product 2"></a>
                                <h4><small>Gold sandals with shiny touch</small></h4>
                                <button class="btn btn-primary" type="button">9,99 €</button> <button href="#" class="btn btn-default" type="button"><span class="glyphicon glyphicon-heart"></span> Add to Wishlist</button>
                            </div><!-- End Item -->
                            <div class="item">
                                <a href="#"><img src="http://placehold.it/254x150/2ecc71/f5f5f5/&text=New+Collection" class="img-responsive" alt="product 3"></a>
                                <h4><small>Denin jacket stamped</small></h4>
                                <button class="btn btn-primary" type="button">49,99 €</button> <button href="#" class="btn btn-default" type="button"><span class="glyphicon glyphicon-heart"></span> Add to Wishlist</button>
                            </div><!-- End Item -->
                          </div><!-- End Carousel Inner -->
                        </div><!-- /.carousel -->
                        <li class="divider"></li>
                        <li><a href="#">View all Collection <span class="glyphicon glyphicon-chevron-right pull-right"></span></a></li>
                    </ul>
                </li>
                <li class="col-sm-3">
                    <ul>
                        <li class="dropdown-header">Dresses</li>
                        <li><a href="#">Unique Features</a></li>
                        <li><a href="#">Image Responsive</a></li>
                        <li><a href="#">Auto Carousel</a></li>
                        <li><a href="#">Newsletter Form</a></li>
                        <li><a href="#">Four columns</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">Tops</li>
                        <li><a href="#">Good Typography</a></li>
                    </ul>
                </li>
                <li class="col-sm-3">
                    <ul>
                        <li class="dropdown-header">Jackets</li>
                        <li><a href="#">Easy to customize</a></li>
                        <li><a href="#">Glyphicons</a></li>
                        <li><a href="#">Pull Right Elements</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">Pants</li>
                        <li><a href="#">Coloured Headers</a></li>
                        <li><a href="#">Primary Buttons & Default</a>  </li>
                        <li><a href="#">Calls to action</a></li>
                    </ul>
                </li>
                <li class="col-sm-3">
                    <ul>
                        <li class="dropdown-header">Accessories</li>
                        <li><a href="#">Default Navbar</a></li>
                        <li><a href="#">Lovely Fonts</a></li>
                        <li><a href="#">Responsive Dropdown </a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">Newsletter</li>
                        <form class="form" role="form">
                          <div class="form-group">
                            <label class="sr-only" for="email">Email address</label>
                            <input type="email" class="form-control" id="email" placeholder="Enter email">
                          </div>
                          <button type="submit" class="btn btn-primary btn-block">Sign in</button>
                        </form>
                    </ul>
                </li>
            </ul>

        </li>
    </ul>

</div><!-- /.nav-collapse -->
</nav>
</div>





</header><!-- mainHeader -->

在您 style.css 文件的 CSS 代码中,您有:

.main-header ul, li {
  display: inline-block;
}

这会覆盖具有 display:none;.mega-dropdown-menu,这就是为什么您的菜单始终显示的原因。

不幸的是,即使我更改了您的菜单似乎也不起作用。我注意到在 bootply 示例中,当您单击打开菜单时,DOM 将更新为 'open'(显示在 dropdown-menu class 旁边)class并且还将添加 beforeafter 伪,这似乎不会在您的网站上发生。

@crazymatt 是正确的,这种风格导致您的导航在桌面视图中保持打开状态,尽管仅此并不能解决移动设备中打开的菜单问题。

如果您将以下样式添加到移动端断点,移动端菜单也会正常工作。

.in .dropdown-menu {
   display: block;
}

我还注意到,在您的实时环境中,您两次调用了 jQuery 和 bootstrap 库。我不认为这是导致此导航问题的原因,但删除这些重复项是个好主意。页眉中有一个实例,页脚中有另一个实例(由 shopify 加载)。