jQuery Masonryは、次のようなDjangoテンプレートタグでは機能しません。
{% for memes in memes %}
<div class="masonryImage">
<img src="{{ MEDIA_URL }}/{{ image.image }}" id="{{ image.pk }}"/>
<div>
{% endfor %}
divがスペルアウトされている場合、同じインスタンスを設定します。
<div class="masonryImage">
<img src="/static/media/images/2012/1018/inspirational-quote-michelangelo-sunrise.jpg" alt="" />
</div>
<div class="masonryImage">
<img src="/static/media/images/2012/1018/inspirationalpercent20quotespercent204_4341.jpg" alt="" />
</div>
私のJS:
<script>
$(function(){
var $container = $('#container');
$container.imagesLoaded( function(){
$container.masonry({
itemSelector : '.masonryImage'
});
});
});
</script>
これがレンダリングされたHTMLです(for templateタグ付き)。問題が発生した場合(機能しなかった場合)に備えて、IDを削除してみました。
<div id="container">
<div class="masonryImage">
<img src="/static/media/images/2012/1018/inspirational-quote-michelangelo-sunrise.jpg" id="9"/>
<div>
<div class="masonryImage">
<img src="/static/media/images/2012/1018/inspirationalpercent20quotespercent204_4341.jpg" id="7"/>
<div>
<div class="masonryImage">
<img src="/static/media/images/2012/1018/002.gif" id="6"/>
<div>
<div class="masonryImage">
<img src="/static/media/images/2012/1018/tumblr_mc1jac0bkn1rnn6wqo1_500.png" id="4"/>
<div>
<div class="masonryImage">
<img src="/static/media/images/2012/1018/inspirational-quotes30.jpg" id="2"/>
<div>
<div class="masonryImage">
<img src="/static/media/images/2012/1018/inspirational-quotes20.jpg" id="1"/>
<div>
</div>
更新 {%for%}画像を同じコンテナに入れてから、「スペルアウト」divを追加してみました。これにより、{%for%}画像が垂直に(石積みなしで)レンダリングされ、スペルアウトされたdivが石積みでレンダリングされます。
これをテンプレート化し、jQuery Masonryを機能させるためのより良い方法はありますか?