我知道这个问题已经得到了回答,这是一把小提琴实现了我想要做的事情,但是,在示例中,它们使用单选按钮,而我使用的是一组按钮(本质上就是获得类.active的div)。
我试图对代码进行调整,因此“筛选器”提供的输出与示例中的输出相同,而且据我所知,它是这样做的(其中包含过滤器类的名称的数组),因此我无法知道为什么它不能工作。
这是我编辑的代码..。
$(document).ready(function(){
var $container = $('#content');
$container.isotope({
itemSelector: '.box',
});
$('.nav a').click(function(){
$('.nav a').removeClass('active');
$(this).addClass('active');
var selector = $(this).attr('data-filter');
$items = $('.box'); // to reference methods on all .item divs later
// alert($items.length);
// get checked checkboxes values
var filters = [];
filters.push(selector);
console.log(filters);
$container.isotope({
filter: filters
}, function($changedItems, instance) {
instance.$allAtoms.filter('.isotope-hidden').removeClass('is-filtered');
alert((instance.$allAtoms.filter('.isotope-hidden')).length); // here it is
instance.$filteredAtoms.addClass('is-filtered');
});
return false;
});
});任何关于为什么我的版本不起作用的想法,我们将不胜感激。
这是我的不工作示例的链接
发布于 2015-04-30 13:29:18
变量filters是一个数组。我觉得应该是一根绳子才行。
就这么做吧:
var filters = [];
filters.push(selector);
filters = filters.join(', ');事实上,如果您一次只使用一个过滤器(如它所示),您可以直接使用变量selector,因为它已经包含了您的过滤器类名。
希望能帮上忙!
https://stackoverflow.com/questions/29968605
复制相似问题