2013-12-13 2 views
1

자주 방문하는 지역 자전거점 용 사이트를 구축했으며 현재 라이브가 아닌 버전은 http://mattgreenfield.co.uk/bikestore/store.html입니다.훌륭한 list.js 관련 문제 및 가격순 정렬

저장 페이지를 정렬하고 필터링 할 수 있도록 화려한 list.js (http://listjs.com)를 설치했습니다 (소유자는 제품을 온라인으로 판매하는 대신 고객이 전화를 걸어 벽돌과 박격포 상점을 방문하기를 원합니다) .

꽤 잘 작동하는 것처럼 보이지만 가격 별 정렬은 가격별로 정렬되지 않는 것 같습니다. 값은 높거나 낮게 정렬되어야하지만 그렇지는 않습니다. 이것은 숫자의 첫 번째 숫자로만 정렬하는 것과 관련이 있습니까? £ 4000는 예를 들어 £ 479보다 적게 정렬 된 것으로 보입니다. 첫 번째 숫자는 같지만 7은 0보다 큽니다 (두 번째 숫자).

나는 코드를 복사 한 원래의 예제에서 연도별로 정렬 된 것처럼 간단한 것을 놓쳤을 수 있습니다. 몇 년 동안이 문제가 발생하지 않을 정도로 4 자리수가 있습니다.

+0

목록 정렬을 설정하는 데 사용하는 코드를 게시하십시오. 그렇지 않으면 제공 한 링크로 무엇을하고 있는지 말할 수 없습니다. –

답변

2

£3,799.99은 실제로 숫자가 아닙니다. 우리 인간은 쉼표와 파운드 기호를 쉽게 무시할 수 있지만 컴퓨터는 똑똑하지 않습니다. 해결책은 list.js의 내부 값을 정렬 가능한 부동 소수점 숫자로 대체하는 것입니다.

// loop through the list 
$.each(userList.items, function(k, item){ 
    var val = item._values; 
    // this strips anything that is not a dot or digit 
    var price = item._values.price.replace(/[^\d\.]/g,""); 
    item._values.price = parseFloat(price); 
}); 
+0

Brilliant. 감사! 나는 잠시 동안이 문제에 대한 내 머리를 두드리고 있었는데, 이것은 내가 생각했던 것보다 훨씬 나은 해결책이다. –