我一直在 laravel 项目中使用 bootstrap 4.3.1 ,一切都运行良好,但我正在使用的底部导航栏展开一次,不想在移动视图中折叠回来。
一旦我点击折叠按钮,代码就会变成折叠状态,然后立即恢复为展开状态。
这里可能出现什么问题?
这是导航栏的代码:
<nav class="navbar fixed-bottom navbar-expand-lg navbar-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav m-auto">
<a class="nav-item nav-link active" href="/">Home <span class="sr-only">(current)</span></a>
<a class="nav-item nav-link" href="/posts">Blog</a>
<a class="nav-item nav-link" href="/services">Service</a>
<a class="nav-item nav-link" href="/about">About</a>
</div>
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@guest
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
</li>
@if (Route::has('register'))
<li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
</li>
@endif
@else
<li><a href="/posts/create" class="nav-item nav-link">Create Post</a></li>
<li><a href="/dashboard" class="nav-item nav-link">{{ Auth::user()->name }} <span class="caret"></span></a></li>
<li>
<a href="{{ route('logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();" class="nav-item nav-link">
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
</li>
@endguest
</ul>
</div>
</nav>
以下是上述代码在浏览器中的 HTML 输出:
<nav class="navbar fixed-bottom navbar-expand-lg navbar-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav m-auto">
<a class="nav-item nav-link active" href="/">Home <span class="sr-only">(current)</span></a>
<a class="nav-item nav-link" href="/posts">Blog</a>
<a class="nav-item nav-link" href="/services">Service</a>
<a class="nav-item nav-link" href="/about">About</a>
</div>
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
<li class="nav-item">
<a class="nav-link" href="http://laravel.build/login">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://laravel.build/register">Register</a>
</li>
</ul>
</div>
</nav>
我的头部标签内容:
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<!-- Fonts -->
<link rel="dns-prefetch" href="//fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
<!-- Google Material Icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
除了上面的代码之外,我在 body 标签末尾附近还有与 bootstrap 相关的脚本:
<!-- Bootstrap JS, Popper.js and jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
有时,当您两次包含引导程序时,就会发生这种情况。检查引用 bootstrap.js 的 js 文件。或者将其全局包含在 webpack.mix.js documentation
是的,这绝对是,我也有同样的问题,我在页脚中添加了引导程序。这让我发疯了!始终检查计算的源代码以检查最终的 html 。谢谢大家