【问题标题】:jQuery Datatables, Select/Deselect handlers does not work afterjQuery 数据表,选择/取消选择处理程序后不起作用
【发布时间】:2021-08-21 05:20:38
【问题描述】:

我正在使用带有按钮和选择的 DataTables。

表的destroy设置为true,因为在某些地方我必须重新加载表(不确定相关)

我得到了 table.on('select' / 'deselect' 事件处理程序

以上所有内容都在我在几个地方调用的单个方法中(比如准备好文档,还有其他地方我需要重新加载表格)

第一次加载表后一切正常,但是当我再次调用该方法时,表重新加载,选择/取消选择事件处理程序),但是在那之后选择事件处理程序给出了这个错误 Uncaught TypeError: Cannot read property 'node' of undefined

事件处理程序的代码如下所示

        table.on('select',
            function() {
                var selectedRows = table.rows({ selected: true });
                table.button(1).enable(selectedRows.count() > 0);
                table.button(2).enable(selectedRows.count() === 1);
            }
        );

【问题讨论】:

  • 在附加之前使用off() API 方法重新初始化表时,是否分离select 事件的事件处理程序?
  • 谢谢@Gyrocode.com,成功了

标签: javascript jquery datatables


【解决方案1】:

我的问题有点不同,因为我在同一个事件处理程序上混合选择和取消选择,但处理程序没有触发:

table.on('deselect select', function () {
    console.log("Code is not reached");
});

对我来说解决问题的是根据 DataTables 论坛上的建议添加 .dt 命名空间

https://datatables.net/forums/discussion/36458/bug-cannot-combine-select-deselect-event-handlers

.on("select.dt deselect.dt",  ...

尽管我的问题与重新加载 DataTable 无关,但 google 搜索将我带到了这里,所以这就是我分享的原因!

【讨论】:

    猜你喜欢
    • 2015-11-27
    • 2011-08-10
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多