2012-04-24 9 views
9

que tienen una configuración de filtro de combinación de isótopos con una serie de datos de filtro de grupo de, cada uno con un descanso/Todos los elemento de la lista:Isótopos: restablecer todos combinación de filtros

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

es una manera de restablecer toda la data-filter-group's - ¿un enlace 'reset-all'?

Mi Javascript actual es:

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

Cualquier idea?

< - Editar ->

parecen haber encontrado una respuesta a mi propia pregunta:

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

poner su respuesta en una respuesta real, por lo que puede seleccionarlo y la gente puede upvote que –

Respuesta

15

A medida que el cartel no puso su respuesta en una respuesta, aquí está para Las personas que reciben a esta pregunta y no ven que hay una respuesta


siguiente código restablece filtro isótopo:

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

También puede agregar una línea adicional para eliminar la clase "seleccionado" dentro de esa misma función, haga clic en, así por ejemplo: '$ ('ul.isotope-options li a'). removeClass ('selected');' – cptstarling

1

Estaba buscando algo similar, pensé que pondría la respuesta aquí por si acaso otro buscador se topa con esta pregunta. Mi problema con la solución que mencionó el póster es que, al menos para mí, no hizo un verdadero restablecimiento. Quería que se reiniciaran los botones y el filtro. También estaba obteniendo un error extraño donde, después de presionar el botón de reinicio, mis filtros no estaban actuando correctamente.

El siguiente guión resolvió todos mis problemas (a la fecha de esta respuesta, lol). Fuente: 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'); 
    });