按钮.按钮.销毁
开始于:Buttons 3.0.0
按钮被销毁时调用的函数。
请注意 - 此属性需要针对 DataTables 的以下Buttons 扩展。
说明
提供此功能是为了允许按钮作者向主机 DataTable 或按钮的 DOM 节点分配自定义事件,然后在按钮销毁时清除这些事件,从而确保没有内存泄漏。
使用此方法与buttons.buttons.init
选项来附加事件时,特别需要注意的是buttons.buttons.namespace
选项(可作为传递到此函数的第三个参数的 namespace
参数访问)。namespace
选项是每个按钮的唯一的命名空间字符串,从而能够正确移除事件,而不会意外移除其他事件。
类型
函数 destroy( dt, node, config )
- 说明
这里给出的函数在通过调用
buttons().remove()
、Buttons 实例被销毁 (buttons().destroy()
) 或主机 DataTable 被销毁 (destroy()
) 而销毁按钮时被调用。提供它是为了允许作者从按钮中移除事件,防止内存泄漏。- 参数
名称 类型 可选 1 dt
否 主机 DataTable 的 DataTables API 实例
2 node
否 有问题的按钮节点的 jQuery 实例
3 config
否 按钮的配置对象
- 返回
无须返回,也不预期有返回值。不执行对于任何所返回的值的操作。
默认
- 值:
默认函数取决于按钮类型。请参阅按钮类型文档
示例
具有鼠标进入/离开 (悬停) 事件侦听器的按钮
new DataTable('#myTable', {
layout: {
topEnd: {
buttons: [
{
text: '',
init: function (e, dt, node, config) {
node.on('mouseenter' + config.namespace, function () {
console.log('Mouse enter');
});
node.on('mouseleave' + config.namespace, function () {
console.log('Mouse leave');
});
},
destroy: function (dt, node, config) {
node.off('mouseenter' + config.namespace);
node.off('mouseleave' + config.namespace);
}
}
]
}
}
});