2012-04-24 3 views
9

У меня есть установка фильтра комбинированного изотопа с рядом данные фильтра-группа, каждый с остальным/показать весь элемент списка:Изотопа: сбросить все комбинации фильтров

<li><a href="#" data-filter="*">Show all</a></li> 

способ сбросить все data-filter-group's - ссылка 'reset-all'?

Мой текущий браузер:

 var $container = $('.content ul.sort'), 
      filters = {}; 

     $container.isotope({ 
      itemSelector : '.dynamic-filter' 
     }); 

     // 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; 
     }); 

Любая идея-х?

< - Edit ->

Появляются нашли ответ на свой вопрос:

 $(".isotope-reset").click(function(){ 
     $(".content ul.sort").isotope({ 
      filter: '*' 
     }); 
    }); 
+1

поставить свой ответ в реальном ответа, так что вы можете выбрать его, и люди могут upvote это –

ответ

15

Как плакат не ставил свой ответ в ответ, вот это для люди, которые получают на этот вопрос и не видят, что есть ответ


После кода сбрасывает Изотоп фильтр:

$(".isotope-reset").click(function(){ 
    $(".content ul.sort").isotope({ 
     filter: '*' 
    }); 
}); 
+0

Вы можете также добавить дополнительную строку, чтобы удалить «выбранный» класс в той самой CLICK-функции, например: '$ ('ul.isotope-options li a'). removeClass ('selected');' – cptstarling

1

Я искал что-то похожее, подумал, что я отвечу здесь, на случай, если другой искатель столкнется с этим вопросом. Моя проблема с решением, упомянутым в плакате, заключается в том, что для меня, по крайней мере, он не сделал истинного сброса. Я хотел, чтобы кнопки были сброшены, а также фильтр. Также я получал странную ошибку, когда после нажатия кнопки сброса мои фильтры не действовали правильно.

В приведенном ниже сценарии решены все мои проблемы (на дату ответа, LOL). Источник: https://github.com/metafizzy/isotope/issues/928

var $anyButtons = $('.filters').find('button[data-filter=""]'); 
    var $buttons = $('.filters button'); 

    $('.button--reset').on('click', function() { 
    // reset filters 
    filters = {}; 
    $grid.isotope({ filter: '*' }); 
    // reset buttons 
    $buttons.removeClass('is-checked'); 
    $anyButtons.addClass('is-checked'); 
    });