首页 > 解决方案 > 文档函数中的“DataTable 不是函数”错误

问题描述

通常,我过去常常通过在里面提供以下代码来初始化数据表

$(function () { 
    $('#keywords-table').DataTable({ 
    "ajax": ({ 
        url: "{{ route('getKeywordsByProductId') }}", 
        method: "get",                                                  
    }), 
    "columns": [
        { "data": "action" },
        { "data": "name" },
    ]
});

并尝试通过$('#keywords-table').DataTable().ajax.reload();(从内部的某些功能重新加载它$(function() {});,它工作得很好。

但是当我尝试从下面的函数重新加载它时,我得到了以下错误

未捕获的类型错误:$(...)DataTable 不是函数。

$(document).on('click', '.edit', function() {
    $('#keywords-table').DataTable().ajax.reload();
});

我试着把

$(document).on('click', '.edit', function() {
  $('#keywords-table').DataTable().ajax.reload();
});

里面$(function() {});,但错误仍然存​​在。

让我知道如何解决这个问题。

标签: javascriptjqueryajaxdatatables

解决方案


您需要创建一个变量来保存由 DataTable() 创建的值。尝试将您的代码更改为

var myTable= $('#keywords-table').DataTable({ 
    "ajax": ({ 
        url: "{{ route('getKeywordsByProductId') }}", 
        method: "get",                                                  
    }), 
    "columns": [
        { "data": "action" },
        { "data": "name" },

    ]
});

接着

$(document).on('click', '.edit', function() {
    myTable.ajax.reload();
});

推荐阅读