从开放的'fancybox'从functionclosures花式框

大家好,我希望能够closuresfancyBox,当它是从内部打开。

我尝试了以下,但无济于事:

function closeFancyBox(html){ var re = /.*Element insert complete!.*/gi; if( html.search( re ) == 0 ){ $.fancybox.close(); //alert("foo"); } } 

foo将在对话框中打开,但不会closures。 任何提示?

试试这个: parent。$。fancybox.close();

请参阅Fancybox API文档 。

根据http://fancybox.net/faq

  1. 如何从其他元素closuresFancyBox? ?

只需在您的onClick事件中调用$.fn.fancybox.close()

所以你应该可以在fn添加。

放入.fn是没有用的,它会受到原型的影响。
你需要做的是$ .fancybox.close();

问题是你可能正在经历js的另一个错误。
屏幕上有错误吗?
你的fancybox和jquery是最新的版本吗? jquery目前在1.4.1和fb中有1.3个东西

试着在fancybox里放一个链接,并把它放在里面。

您可能已经阅读过,但无论如何, http://fancybox.net/api

你可能需要做的一件事是隔离每个部分,以实现它是什么。

如果你只想closures花式框,就可以将其closures。

 $('#inline').click(function(){ $.fancybox.close(); }); 

长期以来,我有相同的问题,然后我通过下面的代码得到解决scheme。 请用

 parent.jQuery.fancybox.close() 

你甚至可以closuresfancyboxclosuresbuttonID和调用该ID的点击事件。

 <input type='button' value='Cancel' onclick='javascript:document.getElementById("fancybox-close").click();' /> 

这个对我有用!

一个老线程的位,但…

实际上,我怀疑关于如何从窗口内部closures窗口的原始问题的答案更多地与click事件未附加到元素的事实有关。 如果单击事件附加在document.ready中,则当fancybox创build新窗口时,事件将不会被附加。

您需要在新窗口中重新应用点击事件。 可能最简单的方法是使用onCompletefunction。

这适用于我:

 $(".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();})} }); 

事实上,经过一些思考“活”,而不是“点击”或“绑定”,也可以工作。

用它来closures它,而不是:

 $.fn.fancybox.close(); 

从fancybox源代码来看,他们是如何处理内部closures的。

在与我一起挣扎之后,我发现了一个解决scheme,只需用jQueryreplace$ jQuery.fancybox.close()然后在onClick上创build一个内联脚本。 去检查我是否可以从父母打电话

对于那些花时间像我这样的人找出内联types的解决scheme:window.setTimeout(function(){$。fancybox.close()},10);

我结束了使用:

 <script>parent.$("#fancy_close").click();</script> 

我猜我们的fancybox版本没有$ .fancybox.close()函数给我打电话:(

仅供参考,我只是希望页面closuresfancybox,因为它已经完成了PHP中的处理。

添加$.fancybox.close()到你想要触发的地方,在函数或callback中,ajax调用结束!

呜呼。

在iframe中使用 – parent。$。fancybox.close();

通过function来closuresfancybox其必要的setTimtout来closuresfancybox的函数Fancybox需要一些时间来closures函数如果你直接调用函数将不起作用

 function close_fancybox(){ $.fancybox.close(); } setTimeout(close_fancybox, 50); 

是的,在Virtuemart它必须buttonclosures – 继续购物,而不是元素,因为点击后你可以redirect..我发现这个redirect错误在我的ajax网站。

closuresajax fancybox窗口,使用这个:

 onclick event -> $.fancybox.close(); return false;