0

次のスクリプトがあります。

<script>

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

</script>

ユーザーがカスタムの閉じるボタン ( ) をクリックしたときに、fancybox2 モーダルを閉じようとしていますforgetit_btn.jpg。これは私が使用しようとしてきたものです:

<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'
  });
});

以下は、fancybox を開く page1.php のコードです。

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

この投稿の一番上にあるスクリプトは page2.php にあります

4

1 に答える 1

2

これは、iframe に読み込まれており、close を呼び出している $.fancybox が開かれているものと同じではないためだと思います。これを参照してください: HTML iframes および 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 に答える