今天经历了无数次斗争。
我有一条执行线正在响应:
Uncaught ReferenceError: $ is not defined
这首先让我检查jquery是否正在加载,但确实如此。真正的错误是它无法找到fancybox功能。
我的HTML元素是:
<div><span class="fancybox"></span></div>
当点击一个按钮时,一个函数会运行,然后当我们到达这一行时它会抛出错误:
$('.bmgi_fancybox').fancybox.open(
{
'afterClose': RefreshParentGridHandOff(SubGridName),
'data-fancybox-type' : 'iframe',
'href': FullUrl,
'modal' : true
});
真正的错误是open不是未定义的函数...即。 fancybox未定义。
我已经检查过并且所有库都已加载并点击它们解决了吗?
<link rel="stylesheet" type="text/css" href="/.../jquery.fancybox.css">
<link rel="stylesheet" type="text/css" href="/.../jquery.fancybox.buttons.css">
<link rel="stylesheet" type="text/css" href="/.../jquery.fancybox.thumbs.css">
<script type="text/javascript" src="/.../jquery.1.10.1.min.js"></script>
<script type="text/javascript" src="/.../jquery.mousewheel.3.0.6.pack.js"></script>
<script type="text/javascript" src="/.../jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="/.../jquery.fancybox.js"></script>
<script type="text/javascript" src="/.../jquery.fancybox.buttons.js"></script>
<script type="text/javascript" src="/.../jquery.fancybox.thumbs.js"></script>
<script type="text/javascript" src="/.../jquery.fancybox.media.js"></script>
文件重命名是正确的,因为我们不允许文件名中的连字符....正如我所说,在开发工具中点击它们,链接会解析并打开。
我已经花了2个小时在这上面,不知道如何继续搞清楚......我的意思是显然缺少了一些东西,但是我看不到/不理解。
谢谢
我只是想到了另一个重要的事情
单击按钮,调用fancybox.open的函数在iframe中,而显示的库span元素等在父元素中....我认为这可能是我的问题。
答案 0 :(得分:2)
当您调用它时,open
方法未定义:
typeof $.fancybox.open // function
typeof $('SELECTOR').fancybox.open // undefined
你需要这样称呼它:
$.fancybox.open({
afterClose: function(){
RefreshParentGridHandOff(SubGridName);
},
type: 'iframe',
href: FullUrl,
modal: true
});
我希望这有帮助!