2012-10-15 5 views
1

현재 여기에있는 JQuery Tablesorter 플러그인을 사용하고 있습니다 : http://www.tablesorter.com, 날짜와 텍스트가 모두 포함 된 열에 문제가 있습니다. 여기에 jsfiddle가있다 :혼합 데이터 열을 tablesorter로 정렬

http://jsfiddle.net/M3V4U/1/

를 첫 번째 이름 필드 제목을 클릭하면하지 않습니다 일종의 때문에 내부의 임의의 날짜가 있습니다. 텍스트 정렬을 시도했지만 작동하지 않습니다. 누구든지 아이디어가 있습니까?

답변

2

는 것 같습니다. 그래서 어느 metadata plugin를로드하거나 헤더 옵션 분류기 유형을 추가 :

$("table").tablesorter({ 
    headers: { 
    0: { sorter: "text" }, 
    4: { sorter: "percent" } 
    } 
}); 

가 여기 updated demo입니다.

0

발견 된 답변은 그리 좋지 않지만 지금은 효과가 있습니다.

ts.addParser({ 
    id: "shortDate", 
    is: function (s) { 
     return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); 
    }, format: function (s, table) { 
     var c = table.config; 
     s = s.replace(/\-/g, "/"); 
     if (c.dateFormat == "us") { 
      // reformat the string in ISO format 
      s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); 
     } else if (c.dateFormat == "uk") { 
      // reformat the string in ISO format 
      s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); 
     } else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { 
      s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); 
     } 
     return $.tablesorter.formatFloat(new Date(s).getTime()); 
    }, type: "numeric" 
}); 

이 모두 실행에서 날짜 파서를 중지하기 때문에, 내 문제를 해결하기 위해 보인다

나는이 파서를 제거했습니다. 이것은 아마 다른 시나리오에서 문제를 일으킬 것이지만 지금은 내 페이지에서 작동하는 것 같습니다. 사람들이 가지고 있다면 나는 아직도 다른 대답에 열려 있습니다. 이 메타 데이터
<th class="{sorter: 'text'}">first name</th> 

그러나 메타 데이터 플러그인이 그 데모에로드되지 않았습니다를 사용하여 정렬 유형을 설정하려는처럼

관련 문제