dateables点击表头增加升降序,js部分怎么改
时间: 2024-03-19 20:46:03 浏览: 8
Datatables 提供了一个 `order()` 函数,可以用来设置表格排序方式。可以监听表头的点击事件,在触发事件时调用 `order()` 函数来改变表格的排序方式。
具体来说,可以在 Datatables 的初始化选项中设置 `columnDefs` 属性,该属性是一个数组,每个元素用来配置一个表格列的属性。其中,可以通过设置 `orderable` 属性来控制该列是否可以排序。当 `orderable` 属性为 `true` 时,该列可以进行排序;当 `orderable` 属性为 `false` 时,该列不可以进行排序。
在监听表头点击事件时,可以获取到当前点击的表头所在的列的索引,然后根据当前的排序方式(升序或降序)来设置新的排序方式,并调用 `order()` 函数来更新表格的排序方式。最后,可以更新表头的样式,以反映当前的排序方式。
以下是一个示例代码,用来实现在 Datatables 中点击表头增加升降序的功能:
```javascript
$(document).ready(function() {
var table = $('#my-table').DataTable({
columnDefs: [
{ targets: '_all', orderable: false } // 禁止对所有列进行排序
]
});
$('#my-table thead th').on('click', function() {
var columnIdx = table.column($(this)).index();
var currentOrder = table.order()[0][1];
var newOrder = currentOrder === 'asc' ? 'desc' : 'asc';
table.order([[columnIdx, newOrder]]).draw();
$('#my-table thead th').removeClass('sorting_asc sorting_desc');
$(this).addClass('sorting_' + newOrder);
});
});
```
在上面的代码中,我们首先初始化了 Datatables,禁止对所有列进行排序。然后,监听表头的点击事件,获取当前点击的表头所在的列的索引,然后根据当前的排序方式(升序或降序)来设置新的排序方式,并调用 `order()` 函数来更新表格的排序方式。最后,我们更新了表头的样式,以反映当前的排序方式。