buttons.buttons.destroy
自:按鈕 3.0.0 起
當按鈕被銷毀時呼叫的函式。
請注意 - 這個屬性需要 DataTables 的 按鈕 擴充功能。
說明
此函式旨在讓按鈕作者能夠將自訂事件指派給主機 DataTable 或按鈕的 DOM 節點,並在按鈕被銷毀時完全移除這些事件,確保不會發生記憶體洩漏。
當使用此方法和 buttons.buttons.init
選項附加事件時,特別需要留意 buttons.buttons.namespace
選項(可以透過傳遞到此函式的第三個參數的 namespace
參數存取)。namespace
選項是每個按鈕唯一的命名空間字串,允許正確移除事件,而不會意外移除其他事件。
類型
function destroy( dt, node, config )
- 說明
當透過呼叫
buttons().remove()
、當按鈕實例被銷毀 (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);
}
}
]
}
}
});