# `Laravel` 的 `Vue` 组件中使用 `DataTables` 组件报 `$().DataTable() not a functuon` 错

LaravelVue 组件中使用 DataTables 组件报 $().DataTable() not a functuon 错 (在引入其他 jquery 插件也有可能报错,如iCheck.js)

BUG 原因1:对 jQuery 的两次引用

讲一下最后的解决办法-》在最开始引入 vue 的编译文件 main.js/app.js

Paste_Image.png
Paste_Image.png

尝试办法1:

1.要在引入 DataTable.js 之前引入 jQuery.js ,不然会报错。

2.Laravelresources/assets/js/bootstrap.js 中加载了 window.$ = window.jQuery = require('jquery');。但是单页应用的 index.blade.php 中要在引入 DataTable.js 之前引入 jQuery.js ,而最后我们还要引入编译的 vue 组件(组件中包含 jQuery),所以这里产生了对 jQuery 的两次引用。
解决办法是吧 window.$ = window.jQuery = require('jquery'); 注释或删除即可。

BUG 原因2:在 vue 组件中不能直接调用如 $('table').DataTable() ,需要用匿名函数外部封装调用:
尝试:写一个 common.js block工具

//common.js 
  const SetDataTable = table_id => {
    $(table_id).DataTable();
  };
//在vue组建中调用,如 users.vue
initDataTable() {
                SetDataTable('#datatable-fixed-header');
            },
            fetchUsers() {
                let self = this
                api.NProgress.start()
                axios.get(api.API_USERS).then(response => {
                    if(response.data.error) {
                        let error = response.data.error
                        window.location.reload();
                        alert(error.http_code);

                    } else {

                        this.users = response.data.data
                        //方法一
                        $(document).ready(function () {
                            self.initDataTable()
                        })
                        //方法二
                        setTimeout(() => {
                              self.initDataTable()
                        })
                    }

                    api.NProgress.done()

                }).catch(error => {
                    console.log(error)
                    api.NProgress.done()
                })
            },```



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文为2016年11月9日,『前端之巅』微信群在线分享活动总结整理而成,转载请在文章开头处注明来自『前端之巅』公众...
    尾尾阅读 10,749评论 3 32
  • 原文链接:http://nshipster.cn/afnetworking-2/ 摘要:AFNetworking ...
    HJR阅读 273评论 0 2
  • 在感情世界里,最痛苦的是,你付出了,却得不到回音。最傻的是,你自认为付出了就能收获爱情。 小静哭着对我说:“一定是...
    逐梦菇凉阅读 2,369评论 81 43
  • 四张机,鸳鸯织就欲双飞,可怜未老头先白,春波碧草,晓寒深处,相对浴红衣。 瑛姑在《射雕英雄传》《神雕侠侣》中,金庸...
    山丘云阅读 608评论 0 3
  • 曾经有人问我,苦苦追来的感情是真爱还是感动?那时候我会毫不犹豫的告诉他,这不是真爱。那时候的我也固执的相信,遇见对...
    快点小丫阅读 1,035评论 4 6