我有一组复选框和选择列表,用于过滤元素。基于数据属性的jQuery过滤器元素
这里是我的html:
<div id="users">
<input name="user" type="checkbox" value="1">
John
<input name="user" type="checkbox" value="2">
Mike
<input name="user" type="checkbox" value="3">
Peter </div>
<select name="products">
<option value="4">Product 1</option>
<option value="5">Product 2</option>
<option value="6">Product 3</option>
</select>
<ul id="items">
<li data-filter="1">Item 1</li>
<li data-filter="2">Item 2</li>
<li data-filter="1">Item 3</li>
<li data-filter="3">Item 4</li>
</ul>
这里是JavaScript的:现在
$('select[name=products]').change(function() {
var filter = $(this).val();
filterList(filter);
});
//News filter function
function filterList(value) {
var list = $("#items li");
$(list).fadeOut("fast");
if (value == "all") {
$("#items").find("li").each(function() {
$(this).delay(200).slideDown("fast");
});
} else {
$("#items").find("li[data-filter*=" + value + "]").each(function() {
$(this).delay(200).slideDown("fast");
});
}
}
我的问题是,包括复选框,以及过滤选项的一部分,但我不知道哪要走的路。我是否将昏迷的数据过滤器值分开:data-filter =“1,3”,其中1是产品,3是用户,还是完全添加新的数据属性?
您可以添加事件以点击复选框并执行功能,读取选择选项和复选框值。 – Cuchu
您的jsfiddle无法为产品和用户正确运行。 – Alko
为什么?我测试并且工作正常!检查控制台并查看过滤器。或删除缓存并尝试使用jsfiddle。你理解这个解释? – Cuchu