文档函数内部出现“ DataTable不是函数”错误

时间:2019-07-12 11:49:49

标签: javascript jquery ajax datatables

通常,我过去通过在

中提供以下代码来初始化数据表
$(function () { 
    $('#keywords-table').DataTable({ 
    "ajax": ({ 
        url: "{{ route('getKeywordsByProductId') }}", 
        method: "get",                                                  
    }), 
    "columns": [
        { "data": "action" },
        { "data": "name" },
    ]
});

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

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

  

未捕获的TypeError:$(...)DataTable不是函数。

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

我试图放

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

$(function() {});内部,但是错误仍然存​​在。

让我知道如何解决该问题。

1 个答案:

答案 0 :(得分:0)

您需要创建一个变量,该变量保存由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();
});