我正在使用http://fancyapps.com jQuery 插件 Fancybox v2.0我花了一段时间才看到这个错误,但它就是这样。
我只知道如何在 Google Chrome 中“逐步”或“逐步”调试,因此在 Chrome 中,访问开发人员工具,然后选择“脚本”选项卡。从那里,选择“在未捕获的异常时暂停”(http://drm.st/ELqh),然后单击此页面左上角的缩略图之一:http://dreamstartest.net/#!/gallery/ (网站正在开发中)。
这些应该在 Fancybox 的模态弹出窗口中加载链接的图像,但是,它会抛出 Fancybox 未定义
错误。真正让我失望的是 Chrome 开发工具的“资源”选项卡没有显示任何无法加载的脚本。那么为什么这个函数是未定义的呢?任何见解将不胜感激,这已经让我苦恼了好几个小时了。
最佳答案
在您的 scripts js file 中你有这个函数(第 25 行):
$("#content a[rel=video_box], a.video-box, a.fancybox").live('click', function(){
fancybox({
'hideOnContentClick': false,
overlayShow: true,
showNavArrows: true
});
});
您收到的错误是因为该行
fancybox({
应该是
$.fancybox({
但是,您还应该考虑到,由于您使用的是 Fancybox v2.x,因此不需要使用 .live()
方法。此外,您正在使用 jQuery v1.7.x,其中 .live()
已被弃用。
另一件事是您正在使用 v1.3.x 的 fancybox API 选项。检查 fancybox v2.x 的文档,因为选项是新的并且以前版本之间不兼容。
更新到 v2.x 的函数应该可以更好地工作,例如:
$("#content a[rel=video_box], a.video-box, a.fancybox").fancybox({
closeClick: false,
arrows: true
});
关于javascript - jQuery 脚本已加载,但抛出 `undefined` 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9347333/