【发布时间】:2012-03-28 21:55:59
【问题描述】:
似乎当我将 afterClose 回调添加到我的 fancybox 时,我收到了这个错误:
未捕获的 RangeError:超出最大调用堆栈大小
这是我正在使用的代码:
$("a.termsLink").fancybox({
type : 'iframe',
fitToView : false,
width : 450,
height : 600,
afterClose : function(){
$('#regForm').click();
}
});
应该发生的是当termsLink 框关闭时,regForm 应该打开。我已经过期了不同的回调,但我遇到的问题似乎不受此影响。
解决方案似乎如下:
afterClose : function(){
setTimeout(function(){$('#regForm').click();}, 1);
}
然而,这对我来说是一个非常 hacky 的方法,问题似乎是 fancybox 代码在另一个盒子的动画仍在运行时尝试调用新盒子,这导致了这个问题。这是 FancyBox 的记录问题吗?或者这是 jQuery 动画事件工作方式的一个功能?这个问题有更优雅的解决方案吗?
【问题讨论】:
-
我敢打赌你有两个库的加载。
-
绝对不是这样,我已经验证过了。这是唯一出现此错误的地方
-
什么是
#regForm?div标签还是form标签? ...点击它的想法是什么? ...您要做的是在关闭后将访问者重定向到该元素? ...喜欢<a href="#regForm" ..? ...这里缺少一些信息。 -
#regForm,是我试图在 termsLink Fancybox 退出时调用的另一个 fancybox。从技术上讲,它是一个锚标签,但它附加在一个花哨的盒子上。
标签: javascript jquery jquery-plugins fancybox jquery-events