我有一些关于涡轮链接设置的问题。设置如下: Laravel Mix - with default: bootstrap,jquery,..)。就在bootstrap.js文件之后,我包含了turbolinks。一切工作,直到页面重新加载-在那里我总是得到错误。我做错了什么?
错误:
app.js:1282 Uncaught TypeError: $ is not a function
at HTMLDocument.<anonymous> (app.js:1282)
at Object.push../node_modules/turbolinks/dist/turbolinks.js.e.dispatch (vendor.js:105933)
at r.notifyApplicationAfterPageLoad (vendor.js:105934)
at r.visitCompleted (vendor.js:105934)
at r.complete (vendor.js:105933)
at r.<anonymous> (vendor.js:105933)
at vendor.js:105933出现错误的行:
document.addEventListener('turbolinks:load',function() {
new SimpleBar(document.getElementsByClassName("js-simplebar")[0]);
$(".sidebar-toggle").on("click", function() {
//...
});
});编辑这里是js包含(编译- Laravel混合)
<head>
<script defer src="/js/manifest.js" data-turbolinks-track="true"></script>
<scrip`enter code here`t defer src="/js/vendor.js" data-turbolinks-track="true"></script>
<script defer src="/js/app.js" data-turbolinks-track="true"></script>
</head>这是我的app.js:
require('./bootstrap');
let Turbolinks = require('turbolinks');
Turbolinks.start();
require("./dashboard");
require('./custom/INotifier').run();
require("./theme/bootstrap");
require("./theme/theme");和bootstrap.js (包括jQuery、bootstrap js、axios等)
try {
window.Popper = require('popper.js').default;
window.$ = window.jQuery = require('jquery');
require('bootstrap');
} catch (e) {}
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';发布于 2020-07-30 03:12:42
在您已经显示的错误中,它被写成Uncaught TypeError: $ is not a function这个错误主要发生在调用它的脚本之前没有定义jQuery时。
通过下载jquery或通过cdn在turbolinks脚本之前,将jquery添加到html的head中,即
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>发布于 2020-07-31 12:46:20
将<script defer src="/js/app.js" data-turbolinks-track="true"></script>移至vendor.js之上,并从脚本标记中删除defer。在编写代码之前加载jquery
<head>
<script src="/js/manifest.js" data-turbolinks-track="true"></script>
<script src="/js/app.js" data-turbolinks-track="true"></script>
<scrip src="/js/vendor.js" data-turbolinks-track="true"></script>
</head>发布于 2020-08-05 16:01:59
试着把JQuery放在第一位,然后放在popper js上。
try {
window.$ = window.jQuery = require('jquery');
window.Popper = require('popper.js').default;
require('bootstrap');
} catch (e) {}
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';这样说的原因是- https://getbootstrap.com/docs/4.0/getting-started/introduction/#js
https://stackoverflow.com/questions/63111476
复制相似问题