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

辉煌。谢谢!我在这个问题上一直在嘲笑我,这是一个比我想象的更好的解决方案。 –