javascript - jQuery 脚本已加载,但抛出 `undefined` 错误

标签 javascript jquery debugging fancybox

我正在使用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/

相关文章:

javascript - 使用 WebODF/Javascript 动态创建 ODT

javascript - jsrender.js 中超出了最大调用堆栈大小

javascript - 更改自定义插件 Ckeditor 的工具提示语言

jquery - 检查表格是否有错误;但现在表单无法提交

Xcode 的彩色控制台输出

javascript - Openpgp.js 无法解密 pgp 消息

javascript - Vuex/Vuejs : accessing localStorage within vuex store

javascript - 在鼠标悬停时应用工具提示

java - 直接在单元测试代码中使用SOAPUI类的编译错误

visual-studio-2010 - 错误只发生在 Release模式