2013-12-13 45 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

輝煌。謝謝!我在這個問題上一直在嘲笑我,這是一個比我想象的更好的解決方案。 –