Javascript 尝试将多个值推入数组(同位素)
我使用同位素作为链接内容的分类组织者,以一种奇特的布局。我正在尝试将多个值推送到一个数组中,这样它将显示过滤器所触及的所有项目。然而,最终的结果只是显示数组中最新的项,而不是总和。最初,我将所有的值放入一个字符串中,然后将x声明为最终结果——我意识到这不是解决这个问题的方法,并对其进行了修改。我不是一个字符串,而是将其放入一个数组中,希望将每个值连接起来,以便显示它们。但是,我仍然只得到最新选定的值。如下所示Javascript 尝试将多个值推入数组(同位素),javascript,arrays,jquery-isotope,Javascript,Arrays,Jquery Isotope,我使用同位素作为链接内容的分类组织者,以一种奇特的布局。我正在尝试将多个值推送到一个数组中,这样它将显示过滤器所触及的所有项目。然而,最终的结果只是显示数组中最新的项,而不是总和。最初,我将所有的值放入一个字符串中,然后将x声明为最终结果——我意识到这不是解决这个问题的方法,并对其进行了修改。我不是一个字符串,而是将其放入一个数组中,希望将每个值连接起来,以便显示它们。但是,我仍然只得到最新选定的值。如下所示 // store filter for each group var filt
// store filter for each group
var filters = {};
$('.filters').on('click', '.button', function() {
var filters = [];
// var filters = '';
var selected = $(this).data('selected');
var group = $(this).data('group');
var currentFilter = $(this).data('filter');
// toggle function along with having multiple selectors
if(selected == "0") {
filters.push($(this).data('filter'));
filters = filters.join(', ');
// filters = $(this).data('filter');
$(this).data('selected', "1");
$(this).addClass('is-checked')
}
else {
$(this).data('selected', "0");
$(this).removeClass('is-checked')
}
// set filter for Isotope
$grid.isotope({
filter: filters
});
// flatten object by concatting values
function concatValues(obj) {
var value = '';
for (var prop in obj) {
value += obj[prop];
}
return value;
}
});
}());
我还设立了一个小提琴演奏会。谢谢你的建议。即使给我指出我可能错过的文档或教程,也会有很大的帮助。现在,我正在研究这个符合我拍摄目的的东西,看看如何修改我的代码以更好地适应这里发生的事情。上周我也花了很多时间来研究这个。:)幸运的是我找到了Desandro的密码笔 希望有帮助
$( function() {
// filter functions
var filterFns = {
greaterThan50: function() {
var number = $(this).find('.number').text();
return parseInt( number, 10 ) > 50;
},
even: function() {
var number = $(this).find('.number').text();
return parseInt( number, 10 ) % 2 === 0;
}
};
// init Isotope
var $container = $('.isotope').isotope({
itemSelector: '.color-shape',
filter: function() {
var isMatched = true;
var $this = $(this);
for ( var prop in filters ) {
var filter = filters[ prop ];
// use function if it matches
filter = filterFns[ filter ] || filter;
// test each filter
if ( filter ) {
isMatched = isMatched && $(this).is( filter );
}
// break if not matched
if ( !isMatched ) {
break;
}
}
return isMatched;
}
});
// store filter for each group
var filters = {};
$('#filters').on( 'click', '.button', function() {
var $this = $(this);
// get group key
var $buttonGroup = $this.parents('.button-group');
var filterGroup = $buttonGroup.attr('data-filter-group');
// set filter for group
filters[ filterGroup ] = $this.attr('data-filter');
// arrange, and use filter fn
$container.isotope('arrange');
});
// change is-checked class on buttons
$('.button-group').each( function( i, buttonGroup ) {
var $buttonGroup = $( buttonGroup );
$buttonGroup.on( 'click', 'button', function() {
$buttonGroup.find('.is-checked').removeClass('is-checked');
$( this ).addClass('is-checked');
});
});
});
上周我也花了很多时间在这上面。:)幸运的是我找到了Desandro的密码笔 希望有帮助
$( function() {
// filter functions
var filterFns = {
greaterThan50: function() {
var number = $(this).find('.number').text();
return parseInt( number, 10 ) > 50;
},
even: function() {
var number = $(this).find('.number').text();
return parseInt( number, 10 ) % 2 === 0;
}
};
// init Isotope
var $container = $('.isotope').isotope({
itemSelector: '.color-shape',
filter: function() {
var isMatched = true;
var $this = $(this);
for ( var prop in filters ) {
var filter = filters[ prop ];
// use function if it matches
filter = filterFns[ filter ] || filter;
// test each filter
if ( filter ) {
isMatched = isMatched && $(this).is( filter );
}
// break if not matched
if ( !isMatched ) {
break;
}
}
return isMatched;
}
});
// store filter for each group
var filters = {};
$('#filters').on( 'click', '.button', function() {
var $this = $(this);
// get group key
var $buttonGroup = $this.parents('.button-group');
var filterGroup = $buttonGroup.attr('data-filter-group');
// set filter for group
filters[ filterGroup ] = $this.attr('data-filter');
// arrange, and use filter fn
$container.isotope('arrange');
});
// change is-checked class on buttons
$('.button-group').each( function( i, buttonGroup ) {
var $buttonGroup = $( buttonGroup );
$buttonGroup.on( 'click', 'button', function() {
$buttonGroup.find('.is-checked').removeClass('is-checked');
$( this ).addClass('is-checked');
});
});
});
这就是我最终得到的解决方案
我想出了一个单独的解决方案,但这是一支很棒的钢笔。我希望我以前见过它
这就是我最终得到的解决方案
我想出了一个单独的解决方案,但这是一支很棒的钢笔。我希望我以前见过它
这里的代码和codepen的代码不一样,给出了什么?这里的代码和codepen的代码不一样,给出了什么?我提出了一个单独的解决方案,但这是一支很棒的笔。我希望我以前见过它。我会把我的解决方案写在我原来的帖子上。我想出了一个单独的解决方案,但这是一支很棒的钢笔。我希望我以前见过它。我会把我的解决方案写在我原来的帖子上。