0

私は ajax 経由でいくつかのコンテンツを読み込んでから、fancybox を起動してそのコンテンツを表示しています。

コンテンツを取得するためのコード:

jQuery('.trigger').click(function(event) {
        event.preventDefault();
        var someid = window.location.hash.substring(1);
        jQuery.ajax({
            type: "GET",
            url: "index.php",
            data: "?option=com_content&view=article&id="+someid+"&tmpl=component",
            success: function(data){
                jQuery("#ajax").html(jQuery(".article",jQuery(data)).html());
                jQuery("#ajax").fancybox().trigger('click'); 
            }
        });
    });

このコードは動作します - いくつかのコンテンツをロードし、fancybox ウィンドウに表示します。

問題は、そのコンテンツにも別の画像にリンクされたサムネイル画像があり、それをもう一度ファンシーボックスで開く必要があることです。しかし、画像をクリックしても何も起こりません。

取得したコンテンツから開く必要がある画像を除いて、すべて正常に機能します。

ただし、取得したコンテンツをファンシーボックスウィンドウに表示しない場合、つまり、要素に追加するだけで、画像は正常に機能します。

また、同じサイトの別の部分で、私が ajax を使用していない場合、「fancybox in fancybox 」があり、すべて正常に動作することに注意してください。

4

1 に答える 1

0

以下を追加して解決:

jQuery('#ajax a').live('click', function(event) {
        event.preventDefault();
        if(jQuery(this).hasClass('fancybox')) {
            jQuery.parent().fancybox.close();
        }
    });
于 2013-02-28T16:51:48.133 に答える