【发布时间】:2023-09-02 03:00:01
【问题描述】:
我在设置 turbolinks 时遇到了一些问题。这是设置:Laravel Mix - 默认设置: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 Mix)
<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';
【问题讨论】:
-
在标题上添加 jquery 导入,这应该足够了,并且在 turbolink 包含之前(或者如果你有它与 laravel 混合,在调用编译的混合脚本之前应该是 jquery)。否则,请在 sn-p 上告诉我们您的脚本在所有导入中的外观
-
您的
catch中的bootstrap.js是否有任何错误? -
不,我也查过了。
-
您是否尝试过使用 jQuery() 而不是 $() ,如果您包含其他 JS 库,有时它可以解决它。
-
也试过了。没有运气。
标签: javascript jquery bootstrap-4 turbolinks laravel-mix