我正在过滤一个同位素画廊。单击按钮将添加到称为过滤器的数组。那工作正常,但是当用户单击活动按钮时,我希望从数组中删除过滤的类别。由于某种原因,它不是。
这是特定的代码:
if($(this).hasClass('is-checked') && $(this).not('.all')){
console.log(filterValue);
filterGroup.splice($.inArray(filterValue, 1));
console.log(filterGroup);
$(this).removeClass('is-checked');
}else if ($(this).hasClass('all')) {
$(this).toggleClass('is-checked');
}else{
filters[group].push($(this).attr('data-filter'));
$(this).addClass('is-checked');
}
您可以在这里http://iris.aimto.be/gallery/gallery.html
看到画廊如果您依次单击“星期四”和“星期五”,然后再次单击“星期五”,则会看到该问题。
谢谢!
答案 0 :(得分:1)
尝试用此代码替换
if ($(this).hasClass('is-checked') && $(this).not('.all')){
console.log(filterValue);
filterGroup.splice(filterGroup.indexOf(filterValue), 1);
console.log(filterGroup);
$(this).removeClass('is-checked');
}else if ($(this).hasClass('all')) {
$(this).toggleClass('is-checked');
}else{
filters[group].push($(this).attr('data-filter'));
$(this).addClass('is-checked');
}
splice method需要将索引作为第一个参数