2015-01-08 2 views
1

http://tablesorter.com은 정렬이 오름차순인지 내림차순인지에 따라 다른 값으로 정렬 할 수 있습니까?jquery tablesorter : 열의 정렬 순서 결정

구문 분석기 (예 : http://code-cocktail.in/hidden-value-sorting-in-jquery-tablesorter-plugin/)를 사용하여 임의의 데이터를 기반으로 셀에 대한 정렬 값을 반환하는 방법을 알아 보았으므로 다른 상황에서 다른 값을 반환하는 것은 충분히 간단합니다.

내가 머리를 치고있는 비트는 구문 분석 할 때 정렬 순서를 결정할 수 없다는 것입니다.

$(".tablesorter").bind("sortStart",function() { 
     $(".tablesorter").trigger("update"); 
}); 

그러나 그것은 는 정렬의 순서가 불명 인 "sortStart"지점에서 같은 보이는 ... : 정렬은 다음을 통해 요청되는 때 세포를 다시 구문 분석 할 수있는 것 같습니다 따라서 파서는 해당 열의 정렬 순서에 따라 다른 값을 제공 할 수 없습니다.

이것이 가능합니까? 감사합니다 :-)

+0

이 시도 할 수 있습니다 :

사소한 수정 (demo) 내림차순 정렬시 정렬하고 다른 상승하는 동안 하나 개의 값을 사용하는 데 필요한 메인 테이블 요소에 저장된 데이터를 훑어보고 거기에 현재 정렬 설정이 있는지 확인하십시오. – charlietfl

답변

1

다음 코드를 사용하려면 원본 버전과 호환되지 않는 CSS, 위젯 및 애드온이있는 fork of tablesorter을 사용해야합니다.


는 이것은 두 개의 다른 값을 사용하여 하나 개의 컬럼을 허용 정렬 (두 응답 좋게 다른 방법을 사용하여 작동) 것을 제외 this Stackoverflow question 다소 유사하다.

HTML (하나의 셀)

<th class="gamename"> 
    <span class="name">Fun Fun</span> 
    <span class="perc">96%</span> 
</th> 

스크립트

$(function() { 

    $('#games').tablesorter({ 
     theme: 'blue', 
     textExtraction: { 
      0: function (node, table, cellIndex) { 
       var $n = $(node); 
       // add semi-colon between values 
       return $n.find('.name').text() + ';' + $n.find('.perc').text(); 
      } 
     }, 
     textSorter: function (a, b, direction, columnIndex, table) { 
      if (columnIndex === 0) { 
       var c = table.config, 
        x = a.split(';'), 
        y = b.split(';'), 
        // sort column by percentage when descending sort is active 
        i = c.$headers.eq(0).hasClass('tablesorter-headerDesc') ? 1 : 0; 
       return $.tablesorter.sortNatural($.trim(x[i]), $.trim(y[i])); 
      } else { 
       return $.tablesorter.sortNatural(a,b); 
      } 
     } 
    }); 

}); 
+0

이것은 정말 별입니다 - 시간을내어 주셔서 감사합니다 o 올바른 방향으로 나를 가리켜 라. (데모도 정말 환상적이다 :-)). –