2

壮大なポップアップ

プラグインのような jQuery ライトボックスである Magnific Popup を使用します。組み込みオブジェクトを使用して属性を取得しようとしています。

思ったようにうまくいきません。ここでAPIを読みました:

http://dimsemenov.com/plugins/magnific-popup/documentation.html#api

これまでに試したこと

コンソールでオブジェクトを取得しましたが、そこから属性を取得できません。(WordPress で使用されているため、jquery Ready は少し異なります (エイリアス))

<script>
jQuery(document).ready(function($) {
    $('.image-link').magnificPopup({
        type:'image',
            callbacks: {
                open: function() {
                    var magnificPopup = $.magnificPopup.instance;
                    console.log(magnificPopup.currItem);
                    window.location.hash = $(magnificPopup.currItem).attr('data-slug');
                    }
            }
    });
});
</script>
<a href="http://www.someimage.com/image.png" data-slug="my-slug">

自分の考え

  • これは $(this) のようなオブジェクトではなく、同じように機能しませんか?
  • 私はそれを間違った方法で呼びますか?
  • この問題に対して間違ったオブジェクトを使用していますか?

質問

それはどのように正しく行われますか?

4

2 に答える 2

7

currItemは Magnific Popup データ オブジェクトであり、DOM 要素ではありません。このオブジェクトには、開いている要素に関するデータが含まれています - 画像パス、ロードされているかどうかのフラグなど

経由でポップアップを開いたDOM要素にアクセスできます$.magnificPopup.instance.currItem.el

openまた、コールバックからコードを実行している場合は、this代わりに$.magnificPopup.instance次を使用できます。

this.currItem.el
于 2013-06-14T14:50:22.680 に答える
0

投稿を公開した後、この問題を解決する関連投稿を見つけました。

壮大なポップアップ: コールバックで現在の要素を取得

于 2013-06-14T14:50:27.317 に答える