jQuery Isotope - Ajax зареждане и инициализация на страница

Имам страница, която може да се презареди (няма проблем) и може да бъде извикана чрез Ajax повикване.

Когато поставя кода за инициализация за isotope плъгина в $(document).ready, всички мои изотопни елементи са объркани. В $(window).load всичко работи добре.

Проблемът е, че при извикване на страницата чрез Ajax събитието load очевидно не се задейства.

Когато поставя инициализацията в Ajax обратното извикване, имам същия проблем като в $(document).ready.

Текущото ми решение е setTimeout в моето $(document).ready. По очевидни причини това не е добро решение.

Някакво хубаво решение?


person Ron    schedule 14.11.2012    source източник


Отговори (1)


Опитайте да проверите дали ajax се е заредил успешно и след това извикайте isotope.

$.getScript("ajax.html", function(data,exception) {   
    if(exception === "success")
    {
        masonryBlocks();
    }
});

function masonryBlocks(){
  $(function(){    
      var $container = $('#container');

      $container.isotope({
        itemSelector: '.box',
        masonry: {
          columnWidth: 1
        }
      });
  });
}
person Sherri Wyche Fleming    schedule 30.11.2012