應用的jQuery我試圖創建生成的div塊砌築顯示。 的strutcture如下:動態生成一個DOMElement
<div id="grid" class="panel">
<div id="grid">
<div id="posts">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/3.3.2/masonry.pkgd.js"></script>
<script src="assets/js/masonry.js"></script>
<div class="post"> <!-- The .post are generated dynamically -->
<!-- Block content generated dynamically -->
</div>
\t <div class="post"> <!-- The .post are generated dynamically -->
<!-- Block content generated dynamically -->
</div>
</div>
</div>
</div
而jQuery的:
jQuery(window).load(function() {
\t // Takes the gutter width from the bottom margin of .post
\t var gutter = parseInt(jQuery('.post').css('marginBottom'));
\t var container = jQuery('#posts');
\t // Creates an instance of Masonry on #posts
\t container.masonry({
\t \t gutter: gutter,
\t \t itemSelector: '.post',
\t \t columnWidth: '.post'
\t });
/*
* some code
*/
});
每次加載頁面時,我得到的錯誤:Uncaught TypeError:container.masonr y不是函數。 我在jQuery的新手,這就是爲什麼我用磚石模板從here
我已經看了一些帖子爲:Event binding on dynamically created elements? 但我無法弄清楚如何解決我的問題。我想這個錯誤發生是因爲我試圖將事件綁定到尚未創建的元素上。
您似乎在您的頁面中包含石工兩次,我會刪除非CDN版本 –
爲什麼不嘗試在'
'' –中加載您的js文件CDN版本允許我使用** jQuery(' .post')container({...}); **因爲我的資產/ js/masonry.js沒有包含容器構造函數的定義。 –