我正在尝试构建的网站上遇到一些问题。在网站的一侧有一个“过滤器”,允许用户选中列表中的框,这将影响他们的搜索结果。我是jQuery的新手,但我已经设法拼凑了足够的代码来完成这项工作...... 主要是
这是我到目前为止的代码:
/// Makes checkboxes in the filter add and remove the proper class based on whether they're checked or not
$('.filterlist input:checkbox').click(function checkboxes(){
$thislist = $(this).closest('.filterlist li > ul');
$checkboxes = $thislist.closest('li > input:checkbox').serializeArray();
if($checkboxes.length < 1) {
$(this).closest('ul.filterlist > li').removeClass('itemselected');
}
else if($checkboxes.length > 0) {
$(this).closest('ul.filterlist > li').addClass('itemselected');
}
});
在我的CSS中,'itemselected'是我想要添加的类。问题是我在'.filterlist'下有多个复选框列表。当我检查第一个列表中的复选框时,它正确地添加了类,如果我删除该列表中的所有类,它将正确删除该类 - 除非在第二个列表中有任何选中。
这是因为我只使用一个数组,但我无法弄清楚如何让它为每个列表创建一个不同的数组,这样即使在第一个列表中检查了一些数组,它仍然会删除如果没有在那里检查,则来自第二个列表中的li的类,反之亦然。
对不起,这是一个很长的问题,我试图具体。
提前感谢您的答案! =]
答案 0 :(得分:0)
这样的事情?
$(document).ready(function(){
$('ul.filterlist input:checkbox').click(function () {
var ul = $(this).parent().parent();
if ( ul.find("input:checked").length == 0 ) {
ul.parent().removeClass('itemselected');
} else {
ul.parent().addClass('itemselected');
}
});
});