2013-08-27 14 views
6

Próbując wprowadzić najnowszą wersję muru, nie mam pojęcia, co oznacza ten błąd. W konsoli, otrzymuję komunikat:"Niepoprawny element murarski: [obiekt obiektu]"

Bad masonry element: [object Object] plugins.js:16 
y plugins.js:16 
n plugins.js:16 
(anonymous function) script.js:24 
c jquery.js:3048 
p.fireWith jquery.js:3160 
x.extend.ready jquery.js:433 
q 

mój skrypt -

var $container = $('#container'); 

$container.imagesLoaded(function(){ 
    var msnry = new Masonry($container, { 
     columnWidth: 320, 
     itemSelector: '.item' 
    }); 
}); 

Zrobiłem pewien włączenie wtyczki imagesLoaded, ten sam błąd jest wyświetlany nawet gdybym wyklucza to. Wygląda na to, że mam na myśli mój plik plugins.js, w którym zapisałem kod dla Masonry, ale niczego nie zmodyfikowałem.

Odpowiedz

15

Przekazujesz obiekt jQuery ($container) do konstruktora murarskiego, który się tego nie spodziewa. Można go zmienić na $container[0] uzyskać elementu DOM z obiektu jQuery:

$container.imagesLoaded(function(){ 
    var msnry = new Masonry($container[0], { 
     columnWidth: 320, 
     itemSelector: '.item' 
    }); 
}); 

lub użyć jQuery inicjalizacji:

$container.imagesLoaded(function(){ 
     $container.masonry({ 
      columnWidth: 320, 
      itemSelector: '.item' 
     }); 
    }); 
+0

Dzięki. Chciałem użyć inicjalizacji jQuery, ale to dało mi kolejny błąd, ponieważ układ muru zniknął po załadowaniu obrazów. Ale myślę, że używanie tego wywołania zwrotnego jest właściwym podejściem. –

Powiązane problemy