同位素网格复选框选择
Isotope grid checkbox selection
我正在使用 Isotope 库来过滤项目,但我想知道是否有一种方法可以添加复选框来启用类似的多重选择?
我创建了一个 fiddle 来展示我所在的位置:
https://jsfiddle.net/arkau0gg/
我的脚本文件如下所示:
$(function(){
var $container = $('#container'),
$filterLinks = $('#filters a');
$container.isotope({
itemSelector: '.item',
filter: '.red'
});
$filterLinks.click(function(){
var $this = $(this);
// don't proceed if already selected
if ( $this.hasClass('selected') ) {
return;
}
$filterLinks.filter('.selected').removeClass('selected');
$this.addClass('selected');
// get selector from data-filter attribute
selector = $this.data('filter');
$container.isotope({
filter: selector
});
});
});
您可以在复选框上循环并为选中的复选框采用数据过滤器属性。
像这样 javascript:
$(function(){
var $container = $('#container'),
$filterLinks = $("input[type='checkbox']");
$container.isotope({
itemSelector: '.item',
filter: '.red'
});
$filterLinks.change(function(){
var selector= '';
$filterLinks.each(function(){
if($(this).prop('checked')){
if(selector != '') selector += ',';
selector += $(this).data('filter');
}
});
if(selector){
$container.isotope({
filter: selector
});
}
});
});
我正在使用 Isotope 库来过滤项目,但我想知道是否有一种方法可以添加复选框来启用类似的多重选择?
我创建了一个 fiddle 来展示我所在的位置:
https://jsfiddle.net/arkau0gg/
我的脚本文件如下所示:
$(function(){
var $container = $('#container'),
$filterLinks = $('#filters a');
$container.isotope({
itemSelector: '.item',
filter: '.red'
});
$filterLinks.click(function(){
var $this = $(this);
// don't proceed if already selected
if ( $this.hasClass('selected') ) {
return;
}
$filterLinks.filter('.selected').removeClass('selected');
$this.addClass('selected');
// get selector from data-filter attribute
selector = $this.data('filter');
$container.isotope({
filter: selector
});
});
});
您可以在复选框上循环并为选中的复选框采用数据过滤器属性。 像这样 javascript:
$(function(){
var $container = $('#container'),
$filterLinks = $("input[type='checkbox']");
$container.isotope({
itemSelector: '.item',
filter: '.red'
});
$filterLinks.change(function(){
var selector= '';
$filterLinks.each(function(){
if($(this).prop('checked')){
if(selector != '') selector += ',';
selector += $(this).data('filter');
}
});
if(selector){
$container.isotope({
filter: selector
});
}
});
});