2012-08-23 12 views
7

Nascondo un li e dopo averlo nascosto c'è una lacuna nell'html e voglio ricaricare la muratura e riorganizzare il contenuto con . Ho provato .masonry ('reload') ma non ho funzionato. Qualsiasi aiutoRiorganizza tutti gli elementi dopo aver nascosto un elemento usando jquery muron

Fiddle http://jsfiddle.net/emtBX/1/

JS

$(document).ready(function(){ 
       $('#container').masonry({ 
       // options 
       itemSelector : '.item', 
       columnWidth : 240, 

       isAnimated: true, 
        animationOptions: { 
        duration: 750, 
        easing: 'linear', 
        queue: false 
        } 
       }); 

       $('#butn1').click(function() { 

        $('#container ul li').eq(2).hide(); 
        $('#container').masonry('reload'); 

       }); 
      }); 
+0

Sembra Massoneria vuole di rimuovere l'articolo completamente: http://jsfiddle.net/emtBX/2/ – Blender

risposta

8

È possibile nascondere la li-elemento e rimuovere la classe .item per riordinare gli elementi, http://jsfiddle.net/emtBX/11/

$('#container ul li').eq(2) 
    .css({'visibility': 'hidden', 'display': 'none'}) 
    .removeClass("item masonry-brick"); 
+0

Grazie per la risposta. C'è un modo per mostrare gli elementi nascosti in modo organizzato? – user1184100

+0

aggiungi nuovamente la classe .item e mostra di nuovo l'elemento. http://jsfiddle.net/emtBX/15/ – anderssonola

+0

grazie funziona bene – user1184100

3

jquery muratura stessa ha un metodo chiamato "nascondi" (http://masonry.desandro.com/methods.html#hide)

usare in questo modo:

$('#container').masonry('hide', $('#container ul li').eq(2)).masonry(); 

l'ultima muratura) chiamata (fa quello che si vuole: "ricaricare" le tessere

+0

A partire da maggio 2017, questa non è più una cosa. Nessun riferimento a questo metodo sulla documentazione :( –

0

Per rispondere a Lewis commento e fornire risposta alle persone in cerca di soluzione in v3, nel metodo v3 hide non esiste più è sufficiente usare il metodo hide() di jquery e dopo aver attivato un layout di muratura. Quindi idea è per gli elementi Hidding:

$('.something-to-hide').each(function(){ 
    $(this).hide(); 
}); 
$('.grid').masonry('layout'); //we assume grid is your class use to masonry container. 

Poi per mostrare di nuovo gli elementi nascosti:

$('.class-for-all-elements').show() 
$('.grid').masonry('layout'); 

Nel mio caso aggiungo a fare qualche ricerca prima di nascondere che è per questo che ho usato un ciascuna () funzione.

Stéphane

Problemi correlati