0

私は次のコードを持っています:

Javascript:

<script>
    $(document).ready(function () {
        $("a.attachbox").fancybox({
            fitToView: false,
            autoSize: true,
            closeClick: false,
            openEffect: 'none',
            closeEffect: 'none',
            minWidth: 750,
            helpers: {
                overlay: {
                    css: {
                        'background': 'rgba(153, 204, 255, .5)'
                    }
                }
            }
        });
    });
</script>

HTML:

<h3>My Products</h3>
<a style="display: none;" class="attachbox fancybox.ajax" href="../site_vendor/add_products.php?page=addproducts"></a>
<div style="text-align:right; padding-top:5px; padding-right:5px;">
    <input class="button"  value="Add a Product" onclick='$("a.attachbox").trigger("click");' />
</div>

私は何時間も試してきましたが、上記のリンクが1回だけ起動する理由を理解できません。fancyboxが開き、一度閉じると、fancyboxを再度開くためのリンクを取得できません。すべてが静かに失敗し、ページでは何も起こらず、firebugでも何も起こりません。fancybox2に関連するのかjqueryに関連するのかわかりません。

4

1 に答える 1

1

あなたのコードは機能します:

<input class="button"  value="Add a Product" onclick='$("a.attachbox").trigger("click");' />

$(document).ready(function () {
  $("a.attachbox").fancybox({
    fitToView: false,
    autoSize: true,
    closeClick: false,
    openEffect: 'none',
    closeEffect: 'none',
    minWidth: 750,
    helpers: {
      overlay: {
        css: {
          'background': 'rgba(153, 204, 255, .5)'
        }
      }
    }
  });
});

... jsfiddleを参照してください。これは、fancyboxまたはjQuery関連の問題ではないと思います。

私の考えでは、ajaxページを開いた後、どういうわけかjsエラーが生成され(FirefoxでWeb開発者ツールバーを使用すると簡単に見つけられます)、そのエラーによってfancyboxが再び機能しなくなります。しかし、それは単なる推測ですが、実際のページへのリンクなしで言うのは難しいです。

于 2013-01-06T08:53:54.910 に答える