我正在使用此库:http://listjs.com/
我需要添加另一个类别来过滤,所以我这样添加:
<script type="text/javascript">
/*
* LOVELY THINGS
*/
var templates = {
valueNames: [ 'name', 'description', 'category' ]
};
var featureList = new List('lovely-things-list', templates);
$('#filter-games').click(function() {
featureList.filter(function(values) {
if (values.category == "Game") {
return true;
} else {
return false;
}
});
return false;
});
$('#filter-NewCategory').click(function() {
featureList.filter(function(values) {
if (values.category == "NewCategory") {
return true;
} else {
return false;
}
});
return false;
});
$('#filter-beverages').click(function() {
featureList.filter(function(values) {
if (values.category == "Beverage") {
return true;
} else {
return false;
}
});
return false;
});
$('#filter-none').click(function() {
featureList.filter(function(values) {
return true;
});
return false;
});
</script>
按钮就像这样:
<li class="btn" id="filter-NewCategory">Only show New Category</li>
然后过滤无法正常工作。第一类工作的第一个按钮,第二个按钮添加一些结果,第三个按钮有时等等。
也许有人知道我做错了什么?
答案 0 :(得分:0)
当你想要绑定到#filter-NewCategory时,你的第二个.click看起来像是绑定到#filter-games吗?
尝试将代码更改为:
$('#filter-NewCategory').click(function() {
featureList.filter(function(values) {
if (values.category == "NewCategory") {
return true;
} else {
return false;
}
});
return false;
});
答案 1 :(得分:0)
过滤功能获取的属性是单个项目。 您需要执行以下操作进行比较:
$('#filter-games').click(function() {
featureList.filter(function(item) {
if (item.values().category == "Game") {
return true;
} else {
return false;
}
});
return false;
});
要重置过滤器,您只需执行
即可featureList.filter();
这里有完整的例子: http://pastebin.com/UPB095pk