2

壮观的弹出窗口

我使用 Magnific Popup,一个类似 jQuery 灯箱的插件。我尝试使用内置对象来获取属性。

它不像我想象的那样工作。我在这里阅读了 API:

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

到目前为止我尝试了什么

我在控制台中获取了对象,但无法从中获取属性。(准备好的 jquery 看起来有点不同(别名),因为它在 WordPress 中使用)

<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 is a Magnific Popup data object, it's not a DOM element. This object contains data about opened element - image path, flags if it's loaded or not e.t.c.

You can access DOM element that opened popup via $.magnificPopup.instance.currItem.el.

Also, if you're executing the code from open callback, you can use this instead of $.magnificPopup.instance:

this.currItem.el
于 2013-06-14T14:50:22.680 回答
0

After publishing my post I found a related post that solved this problem:

Magnific popup: Get current element in callback

于 2013-06-14T14:50:27.317 回答