Как отключить сортировку по столбцу в jQuery.tablesorter? - PullRequest
18 голосов
/ 20 января 2012

Я пытаюсь найти способ, как отключить сортировку по столбцу.Я использую плагин JQuery TableSorter .И по умолчанию, если вы нажимаете на ячейку заголовка, она сортирует данные столбца, но что мне нужно сделать, если мне не нужно использовать сортировку по одному или двум столбцам в таблице из четырех столбцов.

Заранее спасибо.

Ответы [ 5 ]

26 голосов
/ 20 января 2012

Вы должны передать соответствующие параметры при инициализации, например:

{ ...
   headers: { 0: { sorter: false} }
}

Для получения дополнительной информации обратитесь к руководству по адресу:

http://tablesorter.com/docs/

19 голосов
/ 12 января 2014

Также вы можете использовать атрибут данных html:

<th data-sorter="false">...</th>

Или вы можете использовать класс:

<th class="sorter-false">...</th>
6 голосов
/ 20 января 2012

Что-то вроде:

$('#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>$9.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>$19.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>$15.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>$153.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>$13.19</td> 
            <td>11%</td> 
            <td>jan 18, 2007 9:12 am</td> 
        </tr> 
    </tbody> 
</table>
2 голосов
/ 31 июля 2013

Для одного столбца xpapad является правильным

Для нескольких столбцов отключение сортировки

заголовки: {0: {sorter: false}, 1: {sorter: false}, 2: {sorter:false}}

http://tablesorter.com/docs/#Configuration

0 голосов
/ 25 сентября 2018

В tablesorter v2.18.1 теперь вы можете настроить таргетинг на столбец по имени класса элемента внутри заголовка;обратите внимание, что диапазон содержит имя целевого класса в первом столбце имени.

HTML

 <table class="tablesorter">
   <thead>
    <tr>
     <th><span class="first-name">First Name</span></th>
     ...

JS

  $("table").tablesorter({
     headers: {
       '.first-name' : {
       sorter: false
     }
   }
 });

In tablesorter v2.0.5 и старше, были доступны только методы параметров метаданных и заголовков.

В версии 2.3 + столбцы можно отключить любым из следующих методов (все они делают одно и то же)в порядке приоритета:

  • jQuery data 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(
    
...