2015-10-02 33 views
1

我有麻煩插入div(廣告橫幅)隨機內一堆其他股利。奇怪的輸出與packery用於隨機位置div

我發現我是從這個問題用工作實例:Insert a div in a random location in a list of divs

然而,我的模板被插入的項目/一個孩子之內,而不是它的外部容器/目標。

這裏是我的html:

<div class="template" style="display: none;"> 
    <a class="item advertisement"> 
     <div class="item-inner-wrapper"> 
      <img alt="image" src="http://placehold.it/525x765"> 
     </div> 
    </a> 
</div> 

<div class="listings"> 

    <a class="item card" href="#"> 
     <div class="item-inner-wrapper"> 
      <img alt="" src="http://placehold.it/525x765"> 
     </div> 
    </a> 

    <a class="item card" href="#"> 
     <div class="item-inner-wrapper"> 
      <img alt="" src="http://placehold.it/525x765"> 
     </div> 
    </a> 

</div> 

的JS

var insertionTemplate = $('.template').find('.item').html(), 
     insertionTarget = $('.listings'), 
     insertionTargetChildren = insertionTarget.find('.item'), 
     insertionFrequency = 1; 

    var random; 
    for (var i = 0; i < insertionFrequency; i++) { 
     random = Math.floor(Math.random() * insertionTargetChildren.length) + 0; 
     insertionTargetChildren.eq(random).append(insertionTemplate); 
    } 

    $('.listings').packery({ 
     itemSelector: '.item' 
    }); 

這是我在輸出中獲得: (注意.item-inner-wrapper是否放置在最後.item內,而它的父.item感置於.listings

<div class="listings"> 

    <a class="item card" href="#"> 
     <div class="item-inner-wrapper"> 
      <img alt="" src="http://placehold.it/525x765"></div> 
     </div> 
    </a> 

    <a class="item card" href="#"> 
     <div class="item-inner-wrapper"> 
      <img alt="" src="http://placehold.it/525x765"></div> 
     </div> 

     <div class="item-inner-wrapper"> 
      <img src="http://placehold.it/525x765" alt="image"> 
     </div> 
    </a> 

</div><!-- [END] listings --> 

我在這裏弄錯了什麼?

回答

0

嘗試更換appendafter

var insertionTemplate = $('.template').find('.item').html(), 
      insertionTarget = $('.listings'), 
      insertionTargetChildren = insertionTarget.find('.item'), 
      insertionFrequency = 1; 

    var random; 
    for (var i = 0; i < insertionFrequency; i++) { 
     random = Math.floor(Math.random() * insertionTargetChildren.length) + 0; 
     insertionTargetChildren.eq(random).after(insertionTemplate); 
    } 

    $('.listings').packery({ 
     itemSelector: '.item' 
    }); 
+0

這是幾乎沒有,它把它內聯現在的人,但由於某些原因,「項」 HTML仍然被刪除。屏幕截圖:https://www.dropbox.com/s/wyxw6in3k4680w8/Screenshot%202015-10-05%2010.18.10.png?dl=0 – ByteMyPixel