2013-02-07 17 views
6

Ho una casella di selezione che contiene 4 opzioni, selezionando ognuna delle quali comporterà la rimozione di tutti gli .item div attuali e il caricamento nuovo .items e quindi riallineandoli usando l'isotopo.Isotopo non funziona con contenuto caricato ajax

funzione
$('.menu-select').change(function(){ 
    var selected=$('.menu-select-option:selected').html().toLowerCase(); 
     if(selected=='all') 
      { 
       loadContent('mixed_home_all.html'); 
      } 
     if(selected=='recommended') 
      { 
       loadContent('mixed_home_reco.html'); 
      } 
     if(selected=='popular') 
      { 
       loadContent('mixed_home_pop.html'); 
      } 
}); 

Il LoadContent assomiglia a questo:

function loadContent(filename){ 
     var $item=$('.item'); 
     $container.isotope('remove', $item); 
     $container.load(filename, function(){ 
      $container.imagesLoaded(function(){ 
       $container.isotope('reLayout'); 
      }); 
     }); 
    } 

per qualche motivo, reLayout non funziona. La classe isotope-item non viene aggiunta ai singoli elementi. Non ci sono errori nel log della console.

risposta

14

Ho risolto questo problema distruggendo l'isotopo precedente e innescando uno nuovo per ogni valore nella casella di selezione. La mia funzione loadContent assomiglia a questo ora:

function loadContent(filename){ 
     var $item=$('.item'); 
     $container.isotope('destroy'); //destroying isotope 
     $container.load(filename, function(){ 
      $container.imagesLoaded(function(){ 
       $container.isotope({ //triggering isotope 
        itemSelector: '.item' 
       }); 
      }); 
     }); 
    } 
+0

Ciao mi sono adattato con successo questo codice e funziona bene, ma il mio ordinamento non funziona dopo elementi ricaricamento ... Forse mi puoi helo ... Grazie! – vitaminasweb

Problemi correlati