2016-08-09 5 views
2

Я применил jquery tablesorter к таблице, без rowspan, что он работает нормально, но когда я добавляю rowspan для таблицы, сортируя только разрушая мою таблицу.Jquery tablesorter issue with table rowspan

$(".tablesorter").tablesorter({ 
});  

<table cellspacing="1" class="tablesorter"> 
      <thead> 
        <tr> 
         <th>First Name</th> 
         <th>Age</th> 
         <th>Country</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td>Peter</td> 
         <td>28</td> 
         <td rowspan="2" style="vertical-align:middle">AAA</td> 
        </tr> 
        <tr> 
         <td>John</td> 
         <td>33</td> 
        </tr> 
        <tr> 
         <td>Clark</td> 
         <td>18</td> 
         <td>BBB</td> 
        </tr> 

        <tr> 
         <td>Bruce</td> 
         <td>22</td> 
         <td>CCC</td> 
        </tr> 
       </tbody> 
      </table> 

без щелчка сортировать мой стол выглядеть

enter image description here

Когда я нажимаю на столе заголовка страны только уничтожив его стиль.

enter image description here

+0

Я не думаю, что tablesorter поддерживает сортировку с rowspans. Существует [открытый вопрос об этом] (https://github.com/christianbach/tablesorter/issues/111), предполагая, что это табличный трафик, о котором вы говорите. – apokryfos

+0

Если это не поддержка, есть ли альтернативный способ сделать сортировку с rowspan –

+0

Возможно, http://stackoverflow.com/questions/12898951/jquery-sortcolumns-plugin-how-to-sort-correctly-with-rowspan может помочь – apokryfos

ответ

2

Один "простое" решение было бы сделать все строки, которые включены в rowspan дочернюю строку:

  • Оригинал TableSorter (demo)

    <tr> 
        <td>Peter</td> 
        <td>28</td> 
        <td rowspan="2" style="vertical-align:middle">AAA</td> 
    </tr> 
    <tr class="expand-child"> 
        <td>John</td> 
        <td>33</td> 
    </tr> 
    

    Initialize JS

    $(function() { 
        $('table').tablesorter(); 
    }); 
    
  • Tablesorter вилка (demo) - имя класса был изменен в вилке

    <tr> 
        <td>Peter</td> 
        <td>28</td> 
        <td rowspan="2" style="vertical-align:middle">AAA</td> 
    </tr> 
    <tr class="tablesorter-childRow"> 
        <td>John</td> 
        <td>33</td> 
    </tr> 
    

    Initialize JS

    $(function() { 
        $('table').tablesorter({ 
        theme: 'blue' 
        }); 
    }); 
    

Из-за RowSpan задается как дочерние строки, они выиграли» t быть включенным в сортировку, и они не будут переключаться с родителями.