我设置了一个复选框过滤器,我使用.filter来过滤一些div。
这是我的Jquery:
$(document).ready(function(){
var checkboxes = $('div.filter-groups').find('input:checkbox'),
general = $('.general');
function filterCheckboxes(){
var checked = checkboxes.filter(':checked');
general.hide();
$.each(checked, function(){
var rel = $(this).data('filter');
general.filter('.' + rel).show();
});
}
checkboxes.on('click', filterCheckboxes);
});
这是网页: http://www.bluehavenhomes.com/floor-plans?hs_preview=1SQuQUzB-2347415373
这里是jsfiddle: http://jsfiddle.net/jonathanSumner90/nh8vr1kp/1/
我需要.filter
在显示之前检查div是否具有所有复选框属性。有什么建议吗?
其次,为什么当我检查然后取消选中一个/所有div不再出现的框时?可以修复吗?
答案 0 :(得分:0)
你有两个问题:
来自你的jsFiddle:
$(document).ready(function () {
$('div.filter-groups').find('input:checkbox').on('click', function () {
$('.general').hide();
var selectors = [];
var filters = $('div.filter-groups').find('input:checked');
filters.each(function () {
selectors.push('div.general.' + $(this).attr('rel'));
});
if (filters.length == 0)
$('.general').show();
else {
var selector = selectors.join(", ");
$(selector).show();
}
});
});
我没有对此代码进行全面测试。 希望它有所帮助。