0

私はfancybox 2を使用しています.AJAX経由でfancyboxにコンテンツをロードすることができました. しかし、それはページ全体をロードし、特定の div のみに関心があります。fancybox 1 では、ajax にフィルターを追加することでそれを行うことができました。しかし、fancybox 2 でフィルタリングする方法がわかりません。

fancybox 2でAJAXがロードされたページから特定のdivをフィルタリングする方法は?

    $(".fancybox").fancybox({
        maxWidth    : 800,
        maxHeight   : 600,
        fitToView   : false,
        width       : '70%',
        height      : '70%',
        autoSize    : false,
        closeClick  : false,
        openEffect  : 'none',
        closeEffect : 'none',
        type        : 'ajax',
        'ajax'      : {
            dataFilter: function(data) {
            return $(data).find('#modalArticleContainer')[0];
        }
    });

ajaxまでは機能しますが、ページ全体をロードし、フィルターを追加すると機能しなくなります。これは、以前に fancybox 1 で行った方法です。

4

3 に答える 3

2

最新のもの (https://github.com/fancyapps/fancyBox/zipball/master) を使用している場合、ajax 応答から特定の要素をロードするトリックがあります -

<a href="mypage.html #my_id" class="fancybox fancybox.ajax">Load ajax</a>

$(".fancybox").fancybox();
于 2012-05-11T06:45:17.383 に答える
2

afterLoadコールバックを使用してコンテンツを更新し、特定の要素を見つけることでこれを達成しました。

$('.fancybox').fancybox({
 afterLoad   : function() {
  this.content = $("<div>").html(this.content).find("#main-content").html();
 }
});

したがって、この例では、#main-content要素内のコンテンツのみが読み込まれます。

これにより、モバイルではリンクをたどることができますが、デスクトップではヘッダーやフッターなどを使わずに fancybox 内にページをロードできます。

于 2015-10-02T10:57:00.737 に答える