如何从按钮单击关闭jQuery fancybox

我正在使用精美的盒子创建弹出窗口并使用iframe加载其他页面。 这是我的代码

 $(document).ready(function() { $('.calendar .day').click(function() { day_num = $(this).find('.day_num').html(); day_data = prompt('Enter Stuff', $(this).find('.content').html()); if (day_data != null) { $.ajax({ url: window.location, type: 'POST', data: { day: day_num, data: day_data }, success: function(msg) { location.reload(); } }); } }); }); $(document).ready(function(){ $("a.iframeFancybox1").fancybox({ 'width' : 800, 'height' : 650, 'overlayOpacity' : '0.4', 'overlayColor' : '#000', 'hideOnContentClick' : false, 'autoScale' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'type' : 'iframe' }); });  

它成功加载页面并完成这些工作。 但是不是关闭弹出窗体,而是在弹出窗口内加载弹出源窗体。 我想在完成工作时关闭弹出窗体并返回到生成弹出窗口的主菜单页面。 如何通过弹出窗体的按钮单击实现此目的。

此致,Rangana

调用$.fancybox.close();

在post中也看看这个答案

根据http://fancybox.net/faq

  1. 如何从其他元素关闭FancyBox? ?

只需在onClick事件上调用$.fn.fancybox.close()

所以你应该只能添加fn

我不得不在我的Drupal站点上使用parent.jQuery.fancybox.close()来使其正常工作。

您可以使用内联呼叫

  

或者你可以使用被调用的函数

   

在onClickevent中调用函数

这是一个老线程,但我想我会分享我的两分钱。

我在使用onclick事件关闭fancybox iframe时遇到了类似的问题,经过多次尝试,这对我来说很有用:window.parent.jQuery.fancybox.close()

以下是使用输入按钮的示例:

  

同样,我在一个锚(a)标签上测试了onlick,它工作正常。

$.fn.fancybox.close()不适用于版本2.x,实际上它会引发错误。 如果您使用的是2.x版,请尝试使用$.fancybox.close(true)

因为我的关闭按钮具有不同的function:关闭弹出窗口,关闭fancybox。 它需要使用e.stopPropagation()来阻止冒泡事件;

 $('.close-btn').on('click', function(e) { e.preventDefault(); e.stopPropagation(); $(this).parent().hide(); $.fancybox.close(); }); 

SIMPLE解决方案,找到关闭的链接(它有一个类fancibox-close)并在6秒(或6000毫秒)内完成

 setTimeout(function(){ $('.fancybox-close').click(); }, 6000); 

这对我有用……

       

如果你想检查你的浏览器必须看到这个链接: http : //jsfiddle.net/9zxvE/383/

使用fancybox的事件关闭按钮:

 document.getElementsByClassName("fancybox-item fancybox-close")[0].click();