2014-12-02 43 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