首页 文章

未捕获的TypeError:$(...) . tooltip不是Laravel应用程序中的函数(Bootstrap 4预设)

提问于
浏览
3

我正在使用PHP框架Laravel构建一个应用程序 . 我正在使用Bootstrap 4 preset并安装了一个新项目 . 一切正常,css,甚至是从导航栏获得的下拉菜单 . 但出于某种原因,当我尝试通过this初始化工具提示时,我在控制台中得到了一个Typerror . 还尝试通过工具提示类初始化工具提示,但这似乎也不起作用 . 我遇到了与popover组件相同的问题 .

未捕获TypeError:$(...) . tooltip不是函数Uncaught TypeError:$(...) . popover不是函数

除了删除从Laravel安装中获得的注释之外,我在JS中没有任何更改 .

bootstrap.js

window._ = require('lodash');

//Popper for Jquery/Bootstrap
window.Popper = require('popper.js/dist/umd/popper');

//Jquery for Bootstrap
try {
    window.$ = window.jQuery = require('jquery/dist/jquery.slim');

    require('bootstrap');
} catch (e) {}

//Axios for AJAX Calls
window.axios = require('axios');

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
let token = document.head.querySelector('meta[name="csrf-token"]');

if (token) {
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

app.js

//Bootstrap application with dependencies
require('./bootstrap');

//Import Vue
window.Vue = require('vue');

//Vue components
Vue.component('example-component', require('./components/ExampleComponent.vue'));

//Vue init
const app = new Vue({
    el: '#app'
});

//Tooltip init
$(function () {
    $('[data-toggle="tooltip"]').tooltip()
})

HTML /刀片

<i class="ion-help-circled" data-toggle="tooltip" data-placement="top" title="Dit is het adres waarop de website staat tijdens de testfase"></i>

还尝试在我的刀片文件中的常规脚本下面包含工具提示init,但同样,似乎不起作用 .

<!-- Scripts -->
<script src="{{ asset('js/app.js') }}"></script>
<script>

$(function () {
  $('[data-toggle="tooltip"]').tooltip()
});

</script>

看来popper.js有问题,因为它适用于工具提示和弹出组件 .

1 回答

  • 7

    试试吧

    window.$ = window.jQuery = require('jquery'); // <-- main, not 'slim'
    window.Popper = require('popper.js');
    require('bootstrap');
    

    "slim" jQuery dist排除了正确注册 tooltip 作为jQuery插件所必需的一些功能 .

相关问题