我正在嘗試使用一些包含圖像的瓷磚進行砌體佈局。這裏的大致我的代碼:在jQuery砌體中追加項目的問題
var $mainContent = $('#main-content');
$mainContent.imagesLoaded(function() {
$mainContent.masonry()
});
loadMore = function() {
$.ajax({
url: '/things',
success: function (data) {
var $data = $(data);
$data.imagesLoaded(function() {
$mainContent.append($data).masonry('appended', $data, true)
})
}
})
}
$('#load-more').on('click', loadMore)
然而,當我運行它,我得到以下錯誤在Chrome的控制檯:
Uncaught TypeError: Cannot read property 'width' of undefined
跟蹤:
bB jquery.min.js:2
f.each.f.cssHooks.(anonymous function).get jquery.min.js:4
f.extend.css jquery.min.js:4
f.each.f.fn.(anonymous function) jquery.min.js:4
e.extend.access jquery.min.js:2
f.each.f.fn.(anonymous function) jquery.min.js:4
f.each.f.fn.(anonymous function) jquery.min.js:4
$.Mason._placeBrick jquery.masonry.js:246
$.Mason.layout jquery.masonry.js:172
$.Mason._appended jquery.masonry.js:352
$.Mason.appended jquery.masonry.js:341
我使用的砌體v .2.1.05和jQuery v1.7.2
但是,當我改爲reload
而不是appended
,它的工作原理與演示中的相似,但我希望從底部填充帖子,並且我不希望重新計算所有帖子。
你知道發生了什麼事嗎?
我也把這個問題放在github上,但是我還沒有得到答覆。
以及它的工作原理,如果我簡單地改變'磚石(「附加」,$的數據,真)''來砌築(「刷新」)'像我在質詢時說,所以我應該'imagesLoaded'被解僱正確。另外,根據文檔,'appendTo'應該在'masonry'方法之前。 –
如果您嘗試運行我的版本,會發生什麼情況?不要擔心明顯的訂單 - 它應該按照文檔執行。 –