【发布时间】:2015-02-21 19:02:21
【问题描述】:
根据official documentation 有不同的方法来初始化砌体容器。 HTML 初始化工作正常,但是当我尝试将参数从 data-masonry 属性移动到 JQuery 时,事情就中断了。
这里是带有 JSON 参数的 HTML 初始化。
<div id="container" class="masonry js-masonry" data-masonry-options='{ "columnWidth": ".grid-sizer", "itemSelector": ".item", "isFitWidth": true }'>
当我将它们移到我的 js/JQuery 文件时,这就是它目前的样子:
var $container = $('#container');
// initialize
$container.masonry({
columnWidth: '.grid-sizer',
itemSelector: '.item',
isFitWidth: true
});
使用后一个版本,grid-sizer 元素变为可见,当然不应该出现。
我在官方文档中没有看到关于何时需要在 JQuery 中调用初始化代码的规范。是 $(document).ready 我可以在哪里调用它吗?
JSFIDDLE 布局损坏:http://jsfiddle.net/1f1kwfbd/10/
【问题讨论】:
-
是的,您在页面加载后在 $(document).ready 函数中调用它。
-
@Jackson 不幸的是,我得到了一个破碎的砖石网格。我已经更新了我的问题并添加了一个 jsfiddle。
-
您需要在 jsfiddle 中将砌体作为外部资源加载!使用CDN 不加载它就无法工作!你的 gird sizer 里面不应该有内容:
<div class="grid-sizer"></div>并且它需要有自己的 css 规则,而不是链接到你的 .item css,就像这样:.grid-sizer { width: 33.33333%; }。先解决这个问题。
标签: jquery jquery-masonry masonry