Javascript 为什么Laravel bootstrap drowdown不工作

Javascript 为什么Laravel bootstrap drowdown不工作,javascript,laravel,bootstrap-4,navbar,Javascript,Laravel,Bootstrap 4,Navbar,这是我的导航栏 <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top"> <a class="navbar-brand" href="/teashirt/public/">TeaShirt</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#n

这是我的导航栏

<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="/teashirt/public/">TeaShirt</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarsExampleDefault">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
                <a class="nav-link" href="/teashirt/public/">Home <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/teashirt/public/design">Desing your Teashirt</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/teashirt/public/about">About Us</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/teashirt/public/contact">Contact</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/teashirt/public/checkout">Checkout</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="/teashirt/public/cart" tabindex="-1" aria-disabled="true">Cart</a>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Guest!</a>
                <div class="dropdown-menu" aria-labelledby="dropdown01">
                    <a class="dropdown-item" href="#">Profile</a>
                    <a class="dropdown-item" href="#">Another action</a>
                    <a class="dropdown-item" href="#">Logout</a>
                </div>
            </li>
        </ul>
        <form class="form-inline my-2 my-lg-0">
            <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
            <button class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button>
        </form>
    </div>
</nav>
这是我的app.js

require('./bootstrap');
Visual Studio代码提供了替换要求导入的代码,但它不起作用

我试过了 -波普尔升级 -作曲家更新

什么都没用。 导航栏上的一切都正常,但当我单击下拉菜单时,它只会转到链接/。
我在IE和chrome上试用过。同样的结果

基于您的文件,我假设您的问题可能是以下之一

const mix = require('laravel-mix');

mix.setPublicPath('public')
.setResourceRoot('../') // Turns assets paths in css relative to css 
.mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps();
import _ from 'lodash';
import $ from 'jquery';
import 'popper.js'; // Required for BS4
import 'bootstrap';

window.$ = window.jQuery = $;
window._ = _; // Lodash

window.axios = require('axios');

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
1 webpack.mix中的Sourcemaps。试着跟随

const mix = require('laravel-mix');

mix.setPublicPath('public')
.setResourceRoot('../') // Turns assets paths in css relative to css 
.mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps();
import _ from 'lodash';
import $ from 'jquery';
import 'popper.js'; // Required for BS4
import 'bootstrap';

window.$ = window.jQuery = $;
window._ = _; // Lodash

window.axios = require('axios');

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
2确保您的浏览器中未启用任何广告阻止程序。它可能会阻止一些js

3将bootstrap.js更改为以下内容

const mix = require('laravel-mix');

mix.setPublicPath('public')
.setResourceRoot('../') // Turns assets paths in css relative to css 
.mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps();
import _ from 'lodash';
import $ from 'jquery';
import 'popper.js'; // Required for BS4
import 'bootstrap';

window.$ = window.jQuery = $;
window._ = _; // Lodash

window.axios = require('axios');

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
我希望这有帮助。让我知道哪个解决方案对您有效

Adding this just before the `</body>` tagsolved my problem. 

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>

我以前也试过。但我想我已经尝试了太多的事情,我不知道为什么它以前不起作用

我认为答案还没有完全解决,因为这个解决方案不是很容易接受。 在执行最新的laravel 7 composer安装,然后执行artisan ui引导和npm安装以及npm运行开发时,我可能会重现此错误:

可能是一个网页问题,因为在这里它似乎是相同的行为:


我还没有找到解决方案-尝试不同的laravel mix、jquery和bootstrap版本。

检查您的web浏览器控制台,查看是否收到任何错误消息、共享错误消息或共享屏幕截图。您是否运行了npm run dev?你的app.js是否加载?您的package.json是否包含popper?$'.dropdown是否切换'.dropdown是否可以执行任何操作?'DevTools无法分析SourceMap:chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.preload.js.map“”DevTools无法分析SourceMap:chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.postload.js.map“@MikeRossI没有“npm运行开发”。我不知道如何检查“app.js”加载时,我的“package.json”是否包含popper。我不知道如何或在何处运行“$”。下拉切换。“下拉”@kerbholzI已尝试在控制台中出现相同的两个错误,但下拉操作正常@米克罗西分别尝试了这三种方法,然后一起尝试。不起作用:在完成所有这3个步骤后,我尝试“npm运行开发”,结果错误行数超过10@mikeross此行为在官方引导程序repo中被提及并固定:从jQuery 3.5降级到3.4.1修复了问题,直到下一个引导程序版本的修复程序应用:npm安装jquery@3.4.1