2014-12-02 59 views
0

我试图在砌体启动后追加新的项目。我有错误,石匠没有被初始化,直到我把图像加载功能。我现在没有错误,但瓷砖没有布置。你能看到我做错了什么吗?首选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

我认为问题可能是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 
+0

谢谢你,这是问题!我现在仍然遇到麻烦,因为如果你想要这样做,它的布局如何! http://stackoverflow.com/questions/27277274/masonry-why-arranging-in-single-column-overlapping非常感谢! – CaitlinHavener 2014-12-03 16:54:34