我正在尝试使用jQuery使用最新的说明:http://masonry.desandro.com/options.html
我已经把js文件包括在电话前了。电话看起来是这样的:
<script type='text/javascript'>
$(document).ready(function() {
$('#main').masonry({
itemSelector: '.post-outer',
isAnimated: true,
isFitWidth: true
});
});
</script>它无法工作,并在我的Chrome控制台中输出此错误:
未明的TypeError:对象对象没有“砖石”方法
知道为什么会这样吗?
编辑:我试着把电话放在头部和身体底部。
EDIT2:我尝试了正常的javascript调用,而不是jQuery调用。我的控制台中的错误现在声明没有定义砌体。但据我所知.
发布于 2013-08-22 16:18:01
您不能加载砖石,或任何地方,您试图加载它是拒绝连接。我之所以这么说是因为这是我在你网站上的控制台会话。
> var masonry = new Masonry ( '#main' )
ReferenceError: Masonry is not defined // this tells me its not loaded
> var script = document.createElement("script"); // let's inject it
undefined
> script.type = "text/javascript";
"text/javascript"
> script.src = "//cdnjs.cloudflare.com/ajax/libs/masonry/3.1.1/masonry.pkgd.js"
"//cdnjs.cloudflare.com/ajax/libs/masonry/3.1.1/masonry.pkgd.js"
> document.getElementsByTagName("head")[0].appendChild( script )
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/masonry/3.1.1/masonry.pkgd.js"></script>
> masonry
ReferenceError: masonry is not defined
> var masonry = new Masonry()
Bad masonry element: undefined masonry.pkgd.js:1621 // woohoo, we can tell it's loaded now
undefined
> var container = document.querySelector('#main');
undefined
> container
<div class="main section" id="main">…</div>
> var masonry = new Masonry( container )
undefined
> masonry
// and we have it!
Layout {element: div#main.main section, options: Object, items: Array[1], stamps: Array[0], isResizeBound: true…}发布于 2013-08-22 15:48:11
jQuery脚本标记应该在砌体之前加载。
发布于 2013-08-22 16:18:48
同样的问题也出现在我身上,然后我会像这样使用我的代码,而且它对我有用。
因此,您可以尝试这个解决方案,希望它能起作用。
<script type='text/javascript'>
jQuery.noConflict();
(function($) {
$('#main').masonry({
itemSelector: '.post-outer',
isAnimated: true,
isFitWidth: true
});
})(jQuery);
</script>https://stackoverflow.com/questions/18385157
复制相似问题