我在过滤一个同位素画廊。单击按钮将添加到一个名为filter的数组中。这是正常工作的,但当用户单击活动按钮时,我希望从数组中删除已过滤的类别。出于某种原因,它不是。
这是特定的代码:
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
如果您单击“星期四”,然后单击“星期五”,然后再次单击“星期五”,您可以看到问题。
提前感谢!
发布于 2018-08-01 04:18:59
尝试替换为此代码
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需要索引作为第一个参数
https://stackoverflow.com/questions/51621235
复制相似问题