我知道undefined is not a function
错误的含义,但我不知道它出现在这里的原因。
我刚刚下载了最后一个Masonry版本,并尝试按照文档进行操作。 (http://desandro.github.io/masonry/docs/methods.html)
布局工作正常,但似乎我根本无法使用任何masonry()
功能。始终在我的undefined is not a function
来电中收到masonry()
错误。
由于布局正常,我假设砌体脚本工作正常,然后为什么我没有masonry(...)
没有这个未定义的函数错误?< / p>
(我搜索了从Masonry v2到Masonry v3的更改,但没有找到与此功能相关的任何内容)
部分HTML代码:
<a class="navbar-brand" id ="test-masonry" href="#">...</a>
<div id="masonry-container" class="js-masonry" data-masonry-options='{ "columnWidth": 330, "itemSelector": ".item" }'>
<div class="item">
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#createNewBlock">Create a new block</button>
</div>
</div>
<!-- Freshly downloaded from the official Masonry website -->
<script src="js/masonry.pkgd.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.min.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/appCtrl.js"></script>
<!-- Copied from the example in the docs -->
<script>
$(function(){
var $container = $('#masonry-container');
$('#test-masonry').click(function(){
var $boxes = $('<div>Test !</div>');
$container.prepend( $boxes ).masonry( 'reload' );
});
});
</script>
答案 0 :(得分:9)
你在jQuery之前加载了Masonry,因此你得到了undefined
。当包括砌体时,它会检查是否加载了jQuery。如果是,它会将Masonry属性设置为jQuery对象:$.fn.masonry
。所以当你在jQuery之前加载Masonry时,你不能使用jQObject.masonry()
。
布局工作正常,因为Masonry不需要jQuery工作