2012-04-24 16 views
9

Ho un impostazione filtro combinato isotopo con un numero di dati-filtro-gruppo di, ciascuno con un periodo di riposo/mostrare tutti elemento della lista:Isotope: ripristinare tutte le combinazioni filtra

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

è un modo per ripristinare tutte le data-filter-group's - un link 'reset-all'?

mio javascript corrente è:

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

Qualsiasi idea di?

< - Modifica ->

sembrano aver trovato una risposta alla mia domanda:

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

mettere la risposta in una risposta reale, in modo è possibile selezionarlo e la gente può upvote esso –

risposta

15

Come il manifesto non ha messo la sua risposta in una risposta, qui spetta Le persone che ottengono a questa domanda e non vedo che c'è una risposta


Seguendo codice ripristina filtro ISOTOP:

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

È possibile anche aggiungere una linea supplementare per rimuovere la classe "selezionato" all'interno di quella stessa click-funzione, ad esempio: '$ ('ul.isotope-options li a'). removeClass ('selected');' – cptstarling

1

Ero alla ricerca di qualcosa di simile, pensavo di mettere la risposta qui nel caso in cui un altro cercatore avesse trovato questa domanda. Il mio problema con la soluzione menzionata nel poster è che, almeno per me, non ha fatto un vero reset. Volevo che i pulsanti si resettassero e anche il filtro. Inoltre stavo ottenendo uno strano bug in cui dopo aver premuto il pulsante di reset, i miei filtri non agivano correttamente.

Lo script di seguito ha risolto tutti i miei problemi (alla data di questa risposta, lol). Fonte: 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'); 
    }); 
Problemi correlati