'undefined' is not a function (evaluating '$("a.fancybox").fancybox()')
这是我的HTML
<a href="http://localhost/vm/wp-content/gallery/txt/l2.jpg" class="fancybox">
<img src="http://localhost/vm/wp-content/gallery/testando/thumbs/thumbs_l2.jpg">
</a>
和我的javascript
<script type="text/javascript">
$(document).ready(function() {
$("a.fancybox").fancybox();
});
</script>
有没有人遇到过这个问题?
谢谢!
答案 0 :(得分:2)
当页面有两个jQuery副本时,我遇到了类似的问题。因此,请确保您的页面上只有一个jQuery副本。
Fancybox正在从第一个jQuery副本扩展自己;但由于第二个副本,仅从该副本调用文档就绪。当然Fancybox不适用于它。
答案 1 :(得分:1)
我假设您使用的是fancybox v1.3.x,因为该版本无法在Fancybox中显示动态添加的元素(FYI Fancybox v2.x可以处理现有和动态添加的元素)。
如果您不想升级到Fancybox v2.x,那么您有两个选择:
jQuery delegate()
触发带有新元素的fancybox 两个选项都解释为here。
请注意,使用jQuery delegate()
解决方案不适用于Fancybox图库,仅适用于单个元素。
如果您不想使用livequery插件并且仍想使用动态添加元素的Fancybox库,或者您可以升级到jQuery 1.7+并使用新API jQuery on()
我有一个demo page here,它展示了如何在()上使用jQuery来显示具有现有和动态添加元素的Fancybox图库。请随时查看源代码。