我试图在砌体开始后附加新物品。在我将imagesLoaded函数输出之前,我遇到了错误,即砌体尚未初始化。我现在没有错误,但瓷砖没有铺设。你能看出我做错了什么吗? Jquery解决方案首选。
var count = 0;
function placeNewsTiles(news){ //places news tiles
var length = (news.data.length > 20) ? 20 : news.data.length;
var $container = $('#news');
if(count ==0){
//$container.imagesLoaded( function() {
$container.masonry({itemSelector: '.pageNewsItem'});
//});
}
for(var i = 0; i < length; i++){
var el = '<div class="pageNewsItem" id="'+ count + i + '">\
<div class="textWrap">\
<a href="' + news.data[i]._url + '">\
<strong>' + news.data[i]._title + '</strong>\
</a>\
<span class="source">' + news.data[i]._source + '</span>\
</div>\
<div class="imageWrap"></div>\
<div class="thumbsOverlay" style="display:none">\
<div class="thumbs">\
<div>\
<a href="#"" class="up"><img src="../images/Thumbs-Up-2.png" /></a>\
<a href="#"" class="down"><img src="../images/Thumbs-Down-2.png" /></a>\
</div>\
</div>\
</div>\
</div>';
$('#news').append(el).masonry( 'appended', el, true );
//<p>' + news.data[i]._text + '</p>\
//<span class="date">' + formatDate(news.data[i]._date) + '</span>\
getTileImage({total: news.count, i:count + "" + i, url:news.data[i]._url});
}
newsPage = 0;
count++;
hoverTiles();
}
答案 0 :(得分:0)
我认为问题可能是el
是一个字符串,而不是一个DOM元素。尝试执行以下操作:
var el = $('...YourStringConcatenationHere...'); // el is now a jquery object
$('#news').append(el).masonry('appended', el[0], true); // el[0] is the DOM element