DataTables 事件不适用于数据选项

Posted

技术标签:

【中文标题】DataTables 事件不适用于数据选项【英文标题】:DataTables events don't work with data option 【发布时间】:2021-12-19 12:26:39 【问题描述】:

我正在使用 DataTables 1.11.3 并像这样通过 ajax 加载数据,所有事件捕捉器都可以正常工作。但是,如果我删除 ajax 选项并放入“data”:ta_data,事件根本不起作用,没有人。然后,如果我通过按钮 'cklick' ajax 源和重绘事件再次工作,事件不适用于来自局部变量数据的静态加载数据?

$(document).ready(function()
    "use strict";

   
    const ta_data = JSON.parse(ta).data;
    
    let table_arch = $("#datatable-archive").DataTable(
            "scrollY": '60vh',
            "scrollX": false,
            "paging": false,
            "searching": false,
            "info": false,
            "order": [[ 10, "desc" ]],
            "ajax": 
               "url": 'rest/data/history/' + last_date,
               "error": function(a,b,c)showErrorModal(a,b,c); offSpinner();
        ,
            
    )
      .on( 'preDraw', function() sp = buy:0, sell:0, buyErr:0, sellErr:0;)
      .on( 'draw.dt', function() 
            $.when(offSpinner()).then(
                function()
                    gageMaker(sp, "Accuracy");
                    commonDonut();
                
            )
    );  

);

【问题讨论】:

【参考方案1】:

需要更改顺序。先设置事件捕获器,然后初始化表

const ta_data = JSON.parse(ta).data;

let table_arch = $("#datatable-archive"))
  .on( 'draw.dt', function() 
        $.when(offSpinner()).then(
            function()
                gageMaker(sp, "Accuracy");
                commonDonut();
            
        )
).DataTable(
        "scrollY": '60vh',
        "scrollX": false,
        "paging": false,
        "searching": false,
        "info": false,
        "order": [[ 10, "desc" ]],
        "data" : ta_data
    ,
        
)
 

【讨论】:

以上是关于DataTables 事件不适用于数据选项的主要内容,如果未能解决你的问题,请参考以下文章

DataTables row.add() 不适用于 serverSide 选项

DataTables 分页似乎不适用于服务器端数据

yajra/laravel-datatables 搜索不适用于 laravel 5.4

yajra / laravel-datatables搜索不适用于laravel 5.4

单击事件不适用于以编程方式/动态创建的选项按钮

yajra/laravel-datatables 搜索不适用于 laravel 5.7