大家好我希望能够从内部打开时关闭fancyBox。
我尝试了以下但无济于事:
function closeFancyBox(html){
var re = /.*Element insert complete!.*/gi;
if( html.search( re ) == 0 ){
$.fancybox.close();
//alert("foo");
}
}
foo将在对话框中打开,但不会关闭。任何提示?
答案 0 :(得分:162)
试试这个: 。父$ fancybox.close();
答案 1 :(得分:17)
- 如何从其他元素关闭FancyBox? ?
醇>只需致电
$.fn.fancybox.close()
即可 你的onClick事件
所以你应该只能添加fn
。
答案 2 :(得分:10)
如果您只想关闭花式框,则关闭它就足够了。
$('#inline').click(function(){
$.fancybox.close();
});
答案 3 :(得分:9)
放入.fn是没用的,它会引用原型 你需要做的是$ .fancybox.close();
问题是你可能遇到了js的另一个错误
屏幕上有任何错误?
你的fancybox和jquery是最新版本吗?
jquery目前在1.4.1和fb在1.3的东西
尝试将链接放在fancybox中并将该函数放入其中。
你可能已经读过,但无论如何, http://fancybox.net/api
您可能需要做的一件事就是隔离每个部分以实现它的目的。
答案 4 :(得分:5)
您甚至可以通过获取关闭按钮ID并在该ID上调用click事件来关闭fancybox。
<input type='button' value='Cancel' onclick='javascript:document.getElementById("fancybox-close").click();' />
对我有用!
答案 5 :(得分:4)
我长期遇到同样的问题,然后我通过以下代码得到解决方案。 请使用
parent.jQuery.fancybox.close()
答案 6 :(得分:3)
旧线程的一点但是......
实际上,我怀疑关于如何从窗口中的关闭窗口的原始问题的答案更多地与click事件未附加到元素的事实有关。如果单击事件附加在document.ready中,则当fancybox创建新窗口时,将不会附加事件。
您需要在新窗口后重新应用click事件。可能最简单的方法是使用onComplete功能。
这对我有用:
$(".popup").fancybox({
'transitionIn' : 'fade',
'transitionOut' : 'elastic',
'speedIn' : 600,
'speedOut' : 400,
'overlayShow' : true,
'overlayColor' : '#000022',
'overlayOpacity' : 0.8,
'onComplete' : function(){$('.closer').click(function(){parent.$.fancybox.close();})}
});
实际上,经过一些思考'实时'而不是'点击'或'绑定'可能同样有效。
答案 7 :(得分:2)
使用它来关闭它:
$.fn.fancybox.close();
从fancybox源代码判断,就是他们在内部处理它的方式。
答案 8 :(得分:1)
在努力解决这个问题后,我找到了一个解决方案,只需用jQuery jQuery.fancybox.close()
替换$,我就在onClick上创建了一个内联脚本。去检查我是否可以从父母那里拨打电话
答案 9 :(得分:1)
对于那些花了几个小时的人来找出内联类型的解决方案:window.setTimeout(function(){$ .fancybox.close()},10);
答案 10 :(得分:1)
我最终使用了:
<script>parent.$("#fancy_close").click();</script>
我想我们的fancybox版本没有$ .fancybox.close()函数供我调用:(
仅供参考,我只是想让页面关闭fancybox,因为它已经完成了PHP处理。
答案 11 :(得分:1)
将$.fancybox.close()
添加到您想要触发它的位置,在函数或回调中,ajax调用结束!
哇噢。
答案 12 :(得分:0)
在iframe中使用 - parent。$。fancybox.close();
答案 13 :(得分:0)
通过funciton关闭fancybox,使setTimtout成为关闭fancybox的函数 Fancybox需要一些时间来接受关闭功能 如果直接调用该函数将无法正常工作
function close_fancybox(){
$.fancybox.close();
}
setTimeout(close_fancybox, 50);
答案 14 :(得分:0)
答案 15 :(得分:-1)
要关闭ajax fancybox窗口,请使用:
onclick event -> $.fancybox.close();
return false;