我正在使用https://github.com/jiren/filter.js中的filter.js - 很棒的脚本。
var FJS = FilterJS(products, '#products', {
template: '#productfinder-template',
search: {ele: '#searchbox'},
callbacks: {
beforeAddRecords: function(records){
var jq = JsonQuery(records);
console.log(jq.order({'artnr': 'asc'}).exec());
},
afterFilter: function(result){
$('#total_products').text(result.length+' records found');
}
}
});
在回调“beforeAddRecord”中,我调用了JsonQuery“order”函数,结果是一个有序的Json列表,就像我想要的那样。问题是在屏幕上显示此结果。
有没有人有这个脚本的经验?
答案 0 :(得分:1)
做了一些测试,发现以下工作。我将代码点击按钮进行测试。
jQuery("#xselected").on('click', function(){
var jq = JsonQuery(products);
products = jq.order({'artnr': 'asc','category':'asc'}).exec();
FJS.removeRecords({});
FJS.addRecords(products);
FJS.filter;
});
从过滤器中删除所有记录,并在使用JsonQuery的订单功能后将其添加回来。
答案 1 :(得分:1)
我还不能发表评论,所以我会将其作为第二个答案发布。我在recoder发布的代码中遇到了一些奇怪的行为,当我在过滤器之间切换时,来自“产品”的数据加倍。这对于少量商品来说并不是什么大问题,但是当我添加更多商品并进行多次分类时,它开始减慢一切。
问题不在于FJS,而在于“点击”功能。它显然会保存会话的每个更改事件的所有数据。要解决此问题,只需在.unbind()
之前添加.on()
。
jQuery("#xselected").unbind().on('click', function(){
var jq = JsonQuery(products);
products = jq.order({'artnr': 'asc','category':'asc'}).exec();
FJS.removeRecords({});
FJS.addRecords(products);
FJS.filter;
});