2013-06-07 12 views
5

Ponieważ mam różne zakładki, mur nie ładuje ukrytych przedmiotów, więc kiedy klikam na nową zakładkę obrazy układają się na siebie, wiem, że to pytanie zostało zadane wcześniej i odpowiedziałem za pomocą przycisku uruchamiającego, klikając zakładkę, ale jak miałbym to zrobić bez zmywania pierwszej zakładki.jak wyzwolić/przeładować wtyczkę murarską kliknij

Obecnie nazywając murowanie

$(function(){ 
$('#container').masonry({ 
// options 
itemSelector : '.item', 
columnWidth : 260 
    }); 
});` 
$(window).load(function(){ $('#container').masonry(); }); 

i taka sama dla karty 2, ale z innym ID - # container2

zakładka jeden działa idealnie, ale zakładka dwa stosy obrazów, aż do rozmiaru przeglądarkę który naprawia go i działa jak normalny

Odpowiedz

3

Tak, można przeładować widok murze na onclick zdarzenia w następujący sposób: -

Zastosowanie $container.masonry('reload'); jeśli to jest praca dla ciebie. W moim przypadku To nie była praca. Zrobiłem przy użyciu setTimeout(function(){ $container.masonry() }, 400);. zadzwoń do muru w funkcji setTimeout.

$(document).ready(function($) { 
    var $container = $('#youContainerId'); 
    $("#TabId").live("click",function(){ 
     //$container.masonry('reload'); 
     setTimeout(function(){ $container.masonry() }, 400); 
    }); 
}); 
8

Czy to tak:

$(function(){ 
    $('#container').masonry({ 
     // options 
     itemSelector : '.item', 
     columnWidth : 260 
    }); 
}); 

var masonryUpdate = function() { 
    setTimeout(function() { 
     $('#container').masonry(); 
    }, 500); 
} 
$(document).on('click', masonryUpdate); 
$(document).ajaxComplete(masonryUpdate); 

Nigdy nie martwić się o to jeszcze raz! Albo, można nazwać go ponownie po innych animacji, takich jak:

$('#something').slideDown(600, masonryUpdate); 

Nawet jeśli nie, wystarczy kliknąć w dowolnym miejscu na stronie i murze zaktualizuje.

+0

To jest stare rozwiązanie, ale to mi bardzo pomoże! Dzięki! Nadal działa! –