在 Popup 加载时从 Magnific Popup 的调用按钮访问属性

Accessing attributes from Magnific Popup's calling button on Popup load

我有一个包含多个按钮的页面,这些按钮都使用 Magnific Popup 打开相同的模式。但是我需要根据调用按钮的数据属性为每个按钮自定义弹出窗口。

所以我需要一种在弹出窗口弹出时调用函数的方法 :-) 并且可以访问调用按钮。

Magnific 弹出窗口初始化是 FE 的 js 文件的一部分,我正在模块的 js 文件中工作。所以我尽量减少对FE的js的改动!

这可能吗?我怎样才能做到这一点?

检查以下更新:

这是我所做的:

  • 没有触及初始化任何.my-modalclass
  • 的FE的js
  • 我将这些按钮的 classes 从 .my-modal 编辑为 .my-custom-modal(例如)
  • .my-custom-modal 上初始化了 magnificpopup 并添加了以下内容以在打开模式之前触发事件:

    $('.my-custom-modal').magnificPopup({
        type: 'inline',
        midClick: true
    }).on('mfpBeforeOpen', function () {
        // 'this' is the current button that triggered the modal
        console.log(this);
    });
    

更新 以上有效,但 'this' var 没有返回实际按钮,但看起来像是页面中的第一个按钮。 以下应该可以正常工作:

$('.my-custom-modal').magnificPopup({
type: 'inline',
midClick: true,
callbacks: {
            open: function () {
                var mp = $.magnificPopup.instance,
                    btn = $(mp.currItem.el[0]);

                //btn is the actual button being clicked
                console.log(btn);
            }
          }
});