Fancybox麻烦:undefined不是一个函数

时间:2011-12-28 12:31:01

标签: javascript jquery fancybox

我在这里有点麻烦。试图安装fancybox我得到这个javascript错误:

'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>

有没有人遇到过这个问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

当页面有两个jQuery副本时,我遇到了类似的问题。因此,请确保您的页面上只有一个jQuery副本。

Fancybox正在从第一个jQuery副本扩展自己;但由于第二个副本,仅从该副本调用文档就绪。当然Fancybox不适用于它。

答案 1 :(得分:1)

我假设您使用的是fancybox v1.3.x,因为该版本无法在Fancybox中显示动态添加的元素(FYI Fancybox v2.x可以处理现有和动态添加的元素)。

如果您不想升级到Fancybox v2.x,那么您有两个选择:

  1. 使用jQuery livequery插件 或
  2. 重建脚本并使用jQuery delegate()触发带有新元素的fancybox
  3. 两个选项都解释为here

    请注意,使用jQuery delegate()解决方案不适用于Fancybox图库,仅适用于单个元素。

    如果您不想使用livequery插件并且仍想使用动态添加元素的Fancybox库,或者您可以升级到jQuery 1.7+并使用新API jQuery on()

    我有一个demo page here,它展示了如何在()上使用jQuery来显示具有现有和动态添加元素的Fancybox图库。请随时查看源代码。