Как отключить сортировку по столбцу в jQuery.tablesorter?
Я пытаюсь найти способ отключить сортировку по столбцу. Я использую плагин jQuery tablesorter. И по умолчанию, если вы нажмете на ячейку заголовка, он сортирует данные столбца, но что мне нужно сделать, если мне не нужно использовать сортировку по одному или двум столбцам в таблице четырех столбцов.
спасибо заранее.
5 ответов
при инициализации необходимо передать соответствующие параметры, например:
{ ...
headers: { 0: { sorter: false} }
}
для получения дополнительной информации проверьте руководство по адресу:
Также вы можете использовать атрибут данных HTML:
<th data-sorter="false">...</th>
или вы можете использовать класс:
<th class="sorter-false">...</th>
что-то типа:
$('#selector').tablesorter({headers: {0: { sorter: false}}});
это четко обозначено здесь:http://tablesorter.com/docs/example-options-headers.html
$(document).ready(function() {
$("#myTable").tablesorter({
// pass the headers argument and assing a object
headers: {
// assign the secound column (we start counting zero)
1: {
// disable it by setting the property sorter to false
sorter: false
},
// assign the third column (we start counting zero)
2: {
// disable it by setting the property sorter to false
sorter: false
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.21.2/js/jquery.tablesorter.min.js"></script>
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.21.2/css/theme.blue.min.css' type='text/css' />
<table id='myTable' cellspacing="1" class="tablesorter-blue">
<thead>>
<tr>
<th>first name</th>
<th>last name</th>
<th>age</th>
<th>total</th>
<th>discount</th>
<th>date</th>
</tr>
</thead>
<tbody>
<tr>
<td>peter</td>
<td>parker</td>
<td>28</td>
<td>.99</td>
<td>20%</td>
<td>jul 6, 2006 8:14 am</td>
</tr>
<tr>
<td>john</td>
<td>hood</td>
<td>33</td>
<td>.99</td>
<td>25%</td>
<td>dec 10, 2002 5:14 am</td>
</tr>
<tr>
<td>clark</td>
<td>kent</td>
<td>18</td>
<td>.89</td>
<td>44%</td>
<td>jan 12, 2003 11:14 am</td>
</tr>
<tr>
<td>bruce</td>
<td>almighty</td>
<td>45</td>
<td>3.19</td>
<td>44%</td>
<td>jan 18, 2001 9:12 am</td>
</tr>
<tr>
<td>bruce</td>
<td>evans</td>
<td>22</td>
<td>.19</td>
<td>11%</td>
<td>jan 18, 2007 9:12 am</td>
</tr>
</tbody>
</table>
для одного столбца xpapad прав
для нескольких столбцов отключение сортировок
заголовки: { 0: {сортировщик: false}, 1: {сортировщик: false}, 2: {сортировщик: false} }
на tablesorter v2.18.1, теперь вы можете нацелить столбец по имени класса элемента внутри заголовка; обратите внимание, что span имеет целевое имя класса в столбце first name.
HTML-код
<table class="tablesorter">
<thead>
<tr>
<th><span class="first-name">First Name</span></th>
...
JS
$("table").tablesorter({
headers: {
'.first-name' : {
sorter: false
}
}
});
на tablesorter v2.0.5 и старше, были доступны только методы параметров метаданных и заголовков.
на версии 2.3+ столбцы можно отключить через любой из следующих методов (все они делают то же самое), в порядке приоритета:
-
данные в jQuery
data-sorter="false"
.<table class="tablesorter"> <thead> <tr> <th data-sorter="false">Age</th> ....
метаданных
class="{ sorter: false }"
. (Для этого требуется плагин метаданных)-
опции заголовков
headers : { 0 : { sorter: false } }
.$("table").tablesorter({ headers : { 0 : { sorter: false } })
-
заголовок имя класса
class="sorter-false"
.<table class="tablesorter"> <thead> <tr> <th class="sorter-false">Discount</th> ....
-
отключите столбец, используя данные jQuery напрямую, но сделайте это перед таблицей инициализирует.
$("table thead th:eq(5)").data("sorter", false); $("table").tablesorter(