我有一些复选框,当取消选中隐藏未经检查的来源/类别时,会向具有特定数据属性(LI和复选框都有)的LI添加“过滤”类。我在上面添加了一个checkall按钮,它可以设置所有复选框以进行检查,但是,它对我直接选中/取消选中框时隐藏的元素没有影响。是否可以将1 div的显示绑定到另一个的复选框的值?
例如,在加载页面时,检查是否选中了具有相同数据类别的复选框,然后显示内容?也许我应该用php做到这一点?
用于添加/删除已过滤类onclick的复选框代码:
$("#side_categories #sourcestoggle ul#side_categories_prog li .check_box input").click(function () {
var dealcat = $(this).data('dealcat'); //get the category from the clicked button
var deallistcount = $('#deals .deal:visible').size();
if (deallistcount < 0) {
$('#deals .noresults').show();
} else {
$('#deals .noresults').hide();
}
if ($('#' +dealcat+ ':checked').val() !==undefined) {
$('#deals .deal[data-dealcat*="' +dealcat+ '"]').removeClass('filtered');
$('#dealcount .counter #showingval').html(parseInt($('#deals .deal:visible').size()));
} else {
$('#deals .deal[data-dealcat*="' +dealcat+ '"]').addClass('filtered');
$('#dealcount .counter #showingval').html(parseInt($('#deals .deal:visible').size()));
var deallistcount = $('#deals .deal:visible').size();
if (deallistcount < 1) {
$('#deals .noresults').show();
} else {
$('#deals .noresults').hide();
}
}
});
我的checkall代码:
$('#side_categories #sourcestoggle .sources #sources_controls .sources_checkall').click(function(){
$('#side_categories #sourcestoggle ul#side_categories_prog li .check_box input:checkbox').attr('checked','checked');
});
我理解使用checkall / uncheckall最简单的方法就是删除从#deals过滤的所有类,以及反对,但我正在尝试查看是否有“更智能”的方法。< / p>
列表的html ul / li:
<ul id="deals">
<li data-date="26800" data-discount="50" data-value="400" data-price="200" id="9752" data-dealcat="Provider" data-category="Category" class="deal">
blah blah blah
</li>
</ul>
categories / checkbox html:
<ul id='side_categories_prog'>
<li class='programname'>
<div class='check_box'>
<input type='checkbox' value='2' name='sources1' id='programname' checked='checked' data-dealcat='programname'>
</div>
<label for='progname'>programname</label>";
</li>
</ul>
复选框的数据用php填写,并通过jquery控制#deals .deal,它们也是动态填充的。