Javascript 如何使同位素组合过滤器代替单个过滤器?

Javascript 如何使同位素组合过滤器代替单个过滤器?,javascript,jquery,jquery-isotope,Javascript,Jquery,Jquery Isotope,为此,我希望当您单击“颜色”过滤器时,它将过滤颜色,但当您单击“大小”过滤器时,颜色过滤器将重置(也停止高亮显示),然后仅过滤选定的大小。当你点击“形状”时也是如此 这就好像他们不再是组合过滤,而是单独过滤 我可以对这段代码做些什么更改,使它可以这样做 // init Isotope var $grid = $('.grid').isotope({ itemSelector: '.color-shape' }); // store filter for each group var fil

为此,我希望当您单击“颜色”过滤器时,它将过滤颜色,但当您单击“大小”过滤器时,颜色过滤器将重置(也停止高亮显示),然后仅过滤选定的大小。当你点击“形状”时也是如此

这就好像他们不再是组合过滤,而是单独过滤

我可以对这段代码做些什么更改,使它可以这样做

// init Isotope
var $grid = $('.grid').isotope({
  itemSelector: '.color-shape'
});

// store filter for each group
var filters = {};

$('.filters').on( 'click', '.button', function( event ) {
  var $button = $( event.currentTarget );
  // get group key
  var $buttonGroup = $button.parents('.button-group');
  var filterGroup = $buttonGroup.attr('data-filter-group');
  // set filter for group
  filters[ filterGroup ] = $button.attr('data-filter');
  // combine filters
  var filterValue = concatValues( filters );
  // set filter for Isotope
  $grid.isotope({ filter: filterValue });
});

// change is-checked class on buttons
$('.button-group').each( function( i, buttonGroup ) {
  var $buttonGroup = $( buttonGroup );
  $buttonGroup.on( 'click', 'button', function( event ) {
    $buttonGroup.find('.is-checked').removeClass('is-checked');
    var $button = $( event.currentTarget );
    $button.addClass('is-checked');
  });
});
  
// flatten object by concatting values
function concatValues( obj ) {
  var value = '';
  for ( var prop in obj ) {
    value += obj[ prop ];
  }
  return value;
}