重置jQuery IsoTope过滤器和排序

时间:2012-10-03 19:57:24

标签: javascript jquery jquery-plugins jquery-isotope

我有一些jquery同位素过滤器和一种。一切都很好,但我想创建一个重置按钮。

我已经尝试了以下(http://stackoverflow.com/questions/10297558/isotope-reset-all-combination-filters),但它确实似乎重置了项目(在第二次点击时),它确实没有重置过滤器按钮。

1 个答案:

答案 0 :(得分:1)

在编写

时,我只能假设你的意思是“它没有重置过滤器按钮的外观
  

[...]它不会重置过滤器按钮。

如果是这种情况,并且过滤器按钮的外观由CSS-classes控制,就像在Isotope的示例中一样,当用户点击时,您只需从过滤器按钮元素中删除所述CSS类。 “重置”按钮。

在e的来源中。 G。 Isotope's 'Combination filters'-demonstration您将找到以下代码,用于处理单击其中一个过滤器按钮时发生的所有事情:

// filter buttons
$('.filter a').click(function(){
  var $this = $(this);
  // don't proceed if already selected
  if ( $this.hasClass('selected') ) {
    return;
  }

  var $optionSet = $this.parents('.option-set');
  // change selected class
  $optionSet.find('.selected').removeClass('selected');
  $this.addClass('selected');

  // store filter value in object
  // i.e. filters.color = 'red'
  var group = $optionSet.attr('data-filter-group');
  filters[ group ] = $this.attr('data-filter-value');
  // convert object into array
  var isoFilters = [];
  for ( var prop in filters ) {
    isoFilters.push( filters[ prop ] )
  }
  var selector = isoFilters.join('');
  $container.isotope({ filter: selector });

  return false;
});

可以在以下几行中找到与您的问题相关的重要代码(希望如此):

$optionSet.find('.selected').removeClass('selected');
$this.addClass('selected');
  • 第一行从$ optionSet中的所有元素中删除所有'selected'-classes(后者只是一组针对单个过滤器属性的按钮)
  • 第二个为用户点击的元素设置'selected'-class