0

次の方法で開くファンシーボックスがあります。

$('.fancybox').fancybox({
    type: 'iframe',
    fitToView : false,
    autoSize : false,
    height : 550,
    width : 650,
    beforeClose: function () {
        d = new Date();
        var imgObj = $('.fancybox').siblings('img');
        var imgSrc = imgObj.attr("src");
        imgObj.attr("src", imgSrc+"?"+d.getTime());
    }
});

関数でわかるように、beforeCloseクリックされたリンクの兄弟画像をターゲットにして、クエリ文字列として時間を追加することで画像を再読み込みしようとしています。

上記のコードは機能しますが、ページにファンシーボックスが1つある場合にのみ機能します。1つ以上ある場合(これは私がやりたいことです)、ページ上のすべての画像を、クリックされたリンクの隣の画像に再読み込みします。

関数内からファンシーボックスを開くためにクリックしたリンクをターゲットにする方法はありbeforeCloseますか?

これを行う方法については、fancyboxのドキュメントに何も見つかりません。

4

1 に答える 1

2

これの代わりに :

var imgObj = $('.fancybox').siblings('img');

... これを試して :

var imgObj = $(this.element).siblings('img');

JSFIDDLEを参照してください

于 2013-02-14T19:06:43.573 に答える