2013-08-27 38 views
6

Cố gắng kết hợp phiên bản mới nhất của Masonry, tôi không biết gì về lỗi này. Trong giao diện điều khiển, tôi nhận được tin nhắn này:"Yếu tố xây dựng không hợp lệ: [đối tượng]"

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 

Kịch bản của tôi -

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

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

Tôi đã thực hiện chắc chắn bao gồm các plugin imagesLoaded, các lỗi tương tự sẽ được hiển thị ngay cả khi tôi cai trị này ra. Có vẻ như nó đang đề cập đến tệp plugins.js của tôi, nơi tôi đã lưu mã cho Masonry, nhưng tôi đã không sửa đổi bất kỳ thứ gì.

Trả lời

15

Bạn đang chuyển đối tượng jQuery ($container) tới hàm tạo Masonry không mong đợi nó. Bạn có thể thay đổi nó để $container[0] để có được những phần tử DOM từ đối tượng jQuery:

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

hoặc sử dụng jQuery khởi:

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

Cảm ơn. Tôi muốn sử dụng initialisation jQuery nhưng điều đó đã cho tôi một lỗi trong đó bố trí nề biến mất sau khi hình ảnh đã được tải. Nhưng tôi đoán sử dụng gọi lại đó là cách tiếp cận đúng. –

Các vấn đề liên quan