2012-04-24 25 views
9

Mam konfiguracji filtrem kombinowanym izotop o liczbie danych filtr grupa, każdy z resztą/Pokaż wszystkie elementu listy:Izotop: reset wszystkich kombinacji filtrów

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

to sposób na zresetowanie wszystkich data-filter-group's - link "zresetuj wszystko"?

Mój obecny JavaScript jest:

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

Każdy pomysł na?

< - Edit ->

wydają się znaleźć odpowiedzi na moje własne pytanie:

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

umieścić swoją odpowiedź w rzeczywistej odpowiedzi, dzięki czemu można go zaznaczyć, a ludzie mogą upvote to –

Odpowiedz

15

Jako że plakat nie przyłożył odpowiedź na odpowiedź, to jest tutaj dla ludzie, którzy się na to pytanie i nie widać, że jest to odpowiedź


Poniższy kod ustawia filtr Isotop:

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

Można również dodać dodatkowy wiersz, aby usunąć „wybrane” klasy w tym samym kliknięciem funkcji na przykład: $ ('ul.isotope-options li a'). removeClass ('selected'); ' – cptstarling

1

Szukałem czegoś podobnego, myślałem, że umieściłbym odpowiedź tutaj, na wypadek, gdyby inny poszukiwacz natknął się na to pytanie. Mój problem z rozwiązaniem wspomnianego plakatu jest taki, że przynajmniej dla mnie nie dokonał on prawdziwego resetu. Chciałem zresetować przyciski tak samo jak filtr. Otrzymałem też dziwny błąd, gdy po naciśnięciu przycisku reset moje filtry nie działały poprawnie.

Poniższy skrypt rozwiązał wszystkie moje problemy (w dniu tej odpowiedzi, lol). Źródło: 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'); 
    }); 
Powiązane problemy