0

我有以下脚本:

<script>

$(function() {
    $('#close-button').click(function(event) {
        $.fancybox.close(true);
    });
});

</script>

forgetit_btn.jpg当用户单击自定义关闭按钮 ( )时,我正在尝试关闭 fancybox2 模式。这是我一直在尝试使用的:

<img id="close-button" src="_assets/img/forgetit_btn.jpg" />

更多信息:

以下是我用来从 page1.php 调用 fancybox 的代码

$(document).ready(function() {
  $(".various").fancybox({
    maxWidth    : '100%',
    maxHeight   : 600,
    fitToView   : false,
    width       : '90%',
    height      : '70%',
    autoSize    : false,
    closeClick  : false,
    openEffect  : 'none',
    closeEffect : 'none',
    scrolling   : 'no'
  });
});

以下是 page1.php 上的代码,它打开了 fancybox:

   <a class="various fancybox.iframe" href="page2.php">Inactivate My Profile</a>

这篇文章顶部的脚本位于 page2.php

4

1 回答 1

2

我认为这是因为它被加载到 iframe 中,而您调用 close 的 $.fancybox 与正在打开的不同。请参阅:HTML iframe 和 javascript

您可以在调用页面的fancybox中使用afterShow事件来附加点击事件。将此添加到 page1.php 上的选项中

afterShow : function() {
  $('#close-button', $('.fancybox-iframe').contents())
  .click(function(event) {
    $.fancybox.close(true);
  });
}

或者,如果您愿意,在 page2.php 中,您需要访问顶级框架范围并以这种方式获取 fancybox。

$(function() {
  $('#close-button').click(function(event) {
    frames.top.$.fancybox.close(true);
  });
});
于 2013-06-08T14:39:56.060 回答