2015-02-01 1 views
1

여기에 중복 된 점에 대해 사과드립니다. 이미이 주제에 대한 검색을 성공적으로 실행하려고했습니다. jQuery TableSorter를 사용하여 정렬하는 표가 있고 사용자 정의 파서를 사용하여 9 개의 열 중 5 개를 정렬하고 있습니다. 사용자 정의 파서가 테이블 헤더 텍스트를 통해 실행될 때 제대로 작동하지만 테이블 외부의 링크를 통해 테이블 ​​열을 정렬하고 싶습니다. 사용자 정의 파서를 사용하지 않는 그 열이 들어 jQuery Tablesorter : 테이블 외부의 링크를 통해 사용자 정의 파서를 정렬합니다.

, 나는 다음과 같은 구현을 사용하여 테이블 외부 링크를 통해 그들을 정렬 할 수 있었다 ( http://tablesorter.com/docs/example-trigger-sort.html 참조)

$(document).ready(function() { 
$("table").tablesorter(); 
$("#trigger-link").click(function() { 
    // set sorting column and direction, this will sort on the first and third column the column index starts at zero 
    var sorting = [[0,0],[2,0]]; 
    // sort on the first column 
    $("table").trigger("sorton",[sorting]); 
    // return false to stop default link action 
    return false; 
}); 
}); 

지금 내가있는 방법이 필요합니다 테이블 외부의 링크를 통해 사용자 정의 파서를 사용하는 내 열을 정렬하는 방법에 대해 설명합니다. 예 :

// add parser through the tablesorter addParser method 
$.tablesorter.addParser({ 
    // set a unique id 
    id: 'grades', 
    is: function(s) { 
     // return false so this parser is not auto detected 
     return false; 
    }, 
    format: function(s) { 
     // format your data for normalization 
     return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0); 
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 

$(function() { 
    $("table").tablesorter({ 
     headers: { 
      6: { 
       sorter:'grades' 
      } 
     } 
    }); 
});   

어떤 생각이나 제안 주시면 감사하겠습니다 : 나는 (http://tablesorter.com/docs/example-parsers.html 참조) 다음 코드를 실행하는 데 위의 코드를 사용하는 몇 가지 방법이 필요합니다.

건배,

답변

0

잭 초기화에, 그것은 전체 테이블을 통해 수행하고 모든 세포에서 데이터를 저장한다는 것입니다 작동 tablesorter에 방법. 이 데이터는 먼저 파서에 의해 처리되고 내부 배열에 저장됩니다.

열을 정렬하면 원래 테이블러는 실제로 내부 배열을 정렬 한 다음 상호 참조를 사용하여 테이블 행을 정렬 된 순서로 다시 테이블에 추가합니다. 이것은 외부 링크에도 적용됩니다. Tablesorter는 내부 배열을 정렬하고 행을 테이블에 다시 추가합니다.

내부 캐시 내의 데이터를 새로 고치는 유일한 방법은 파서를 사용하여 모든 테이블 셀을 다시 처리하여 내부 배열을 다시 작성하는 "업데이트"를 트리거하는 것입니다.

그래서 ... 사용자 지정 파서를 사용하는 열을 정렬하려면 사용자 지정 파서가없는 열의 경우와 완전히 동일하게 수행하십시오. 예를 들어 맞춤 구문 분석기가 다섯 번째 열에있는 경우 외부 링크 코드를 다음과 같이 설정하십시오.

$("#trigger-link").click(function() { 
    // apply an ascending sort on the 5th column (zero-based index) 
    $("table").trigger("sorton",[ [[4,0]] ]); 
    return false; 
});