如何从按钮单击关闭jQuery fancybox

Ran*_*ath 17 javascript ajax jquery codeigniter fancybox

我正在使用精美的盒子来创建弹出窗口并使用iframe在其上加载另一个页面.这是我的代码

    <script type="text/javascript">
$(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'
    });
});

</script>
Run Code Online (Sandbox Code Playgroud)

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

此致,Rangana

Hai*_*vgi 35

拨电至 $.fancybox.close();

帖子中也看看这个答案

根据http://fancybox.net/faq

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

只需调用$.fn.fancybox.close()onClick事件即可

所以你应该只能添加fn.

  • 我有fancybox的第2版,这不起作用...但是,父.$ .fancybox.close(); 成功了! (3认同)

小智 14

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


小智 7

您可以使用内联呼叫

<input type="button" onclick="$.fancybox.close()" value="CloseFB" />
Run Code Online (Sandbox Code Playgroud)

或者你可以使用所谓的函数

<script>
function closeFB() {
    // Before closing you can do other stuff, like page reloading
    $("#destination_div").load("?v=staff #source_div_with_content"); 
    // After all you can close FB
    $.fancybox.close(); 
}
</script>

<input type="button" onclick="closeFB()" value="CloseFB" />
Run Code Online (Sandbox Code Playgroud)

在onClickevent中调用函数


小智 5

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

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

这是使用输入按钮的示例:

<input type="button" class="formbutton" value="Close" onClick="window.parent.jQuery.fancybox.close();" />
Run Code Online (Sandbox Code Playgroud)

同样,我在锚点 (a) 标签上测试了 onlick,效果很好。