按鈕選擇器
按鈕選擇器。
請注意 - 這個屬性需要 DataTables 的 Buttons 擴充功能。
描述
DataTables 的 Buttons 擴充功能提供了一個彈性的 API,它使用 buttons()
和 button()
方法作為其基本存取點。使用這兩個方法,您可以從一個或多個按鈕群組(實例)中選擇一個或多個按鈕,然後對這些選定的按鈕執行操作。這旨在匹配 核心 DataTables API 對於行、列和單元格選擇的行為,為所有 DataTables 互動提供一致的 API 介面。
選項
以下選項可以用作 buttons()
和 button()
方法的按鈕選擇器
- 無選擇器 - 選擇所有按鈕
null
- 無選擇器 的別名integer
- 根據索引選擇按鈕{\d}
或{\d}-{\d}
- 按鈕索引選擇器,包含子按鈕 (例如2-1
){string}:name
- 按鈕名稱選擇器string
- jQuery 選擇器(在按鈕節點上執行)node
- DOM 元素選擇器jQuery
- DOM 元素選擇器array
- 包含上述選項任意組合的陣列
無選擇器
無選擇器(即 undefined
或 null
)將選擇集合中所有可用的按鈕,包括集合中的任何按鈕。這提供了同時在實例中的所有按鈕上執行操作的能力。
停用所有按鈕
var table = new DataTable('#myTable');
table.buttons().disable();
integer
整數選擇器將選擇頂層按鈕(即那些始終可見的按鈕 - 而不是集合中的按鈕)作為一個簡單的索引計數器。按鈕按索引添加和儲存,因此提供了這個簡單的選擇器選項,如果您不是動態添加和移除按鈕(如果您是,請考慮使用下面的按鈕名稱選擇器),這個選項非常有用。
僅停用第二個按鈕
var table = new DataTable('#myTable');
table.button(1).disable();
{\d} 或 {\d}-{\d}
如上所述,整數選擇器只能選擇頂層按鈕,但也可以使用索引選擇集合中的按鈕。在這種情況下,給定的選擇器是 {topIndex}-{collectionIndex}
,其中兩個索引都是從 0 開始的。
# 例如考慮按鈕結構
buttons: [
'add',
'edit',
'remove',
{
text: 'Export',
buttons: ['csv', 'pdf']
}
]
頂層的 Export 按鈕可以使用 table.button( 3 )
選擇,而 CSV 按鈕可以使用 table.button( '3-0' )
選擇。
這裡值得注意的是,集合的深度沒有限制。如果存在類似 collection button > sub-collection > sub-sub-collection
的結構,那麼要選擇子子集合中的第一個按鈕,選擇器將採用 {\d}-{\d}-{\d}
的形式,或者使用真實數字,0-0-0
。
{string}:name
可以使用 buttons.buttons.name
選項為每個按鈕指定一個名稱,以便可以單獨選擇它,而無需像使用上面的索引選擇器選項那樣追蹤按鈕索引。此外,按鈕名稱不需要是唯一的,因此單個名稱可以引用多個按鈕。
除了能夠使用字串選擇單個按鈕之外,還可以使用逗號分隔符選擇多個按鈕(與在 CSS 或 jQuery 選擇器中使用逗號選擇多個元素的方式非常相似)。
使用名稱選擇器停用按鈕
var table = new DataTable('#myTable', {
buttons: [{ extend: 'csv', name: 'csv' }]
});
table.buttons('csv:name').disable();
string
如果給定的字串作為選擇器,它將首先被檢查是否匹配上面的選擇器選項之一 - 特別是索引或名稱選擇器。如果不是,則將按鈕節點收集到 jQuery 實例中,並將給定的選擇器作為篩選器運行。這對於根據類別名稱進行選擇特別有用(可以使用 buttons.buttons.className
和其他常見 DOM 屬性進行設定)。
使用類別名稱選擇器停用按鈕
var table = new DataTable('#myTable', {
buttons: [{ extend: 'csv', className: 'csv' }]
});
table.buttons('.csv').disable();
node
使用 DOM 元素選擇按鈕。如果您在按鈕中使用 DOM 事件,並且只有一個節點可以引用它,這會很有用。
在滑鼠進入時啟用按鈕
var table = new DataTable('#myTable');
$('#content').on('mouseenter', 'a.dt-button', function (e) {
table.button(this).enable();
});
jQuery
與上面的 node
類型非常相似(因為 jQuery 物件是 DOM 節點的類似陣列列表),可以將 jQuery 實例作為按鈕選擇器給定。如果您已經選擇了要執行操作的節點,這會很有用。
停用類別名稱為 csv
的按鈕
var table = new DataTable('#myTable');
table.buttons($('a.dt-button.csv')).disable();
array
可以將上述選項的任意組合作為選擇器一起給定,從而提供一種選擇多個按鈕或混合選擇器類型的方法,只需在陣列中提供所需的選擇器選項即可。按鈕將自動移除任何重複項,以確保通過 API 請求的任何操作對於每個按鈕只發生一次。
停用索引 0 的按鈕和所有類別為 csv
的按鈕
var table = new DataTable('#myTable');
table.buttons([0, '.csv']).disable();