Magnific popup:获取回调中的当前元素

在Magnific Popup中,我想在链接中获取一个属性,并在回调函数中使用它(使用回调:open)在DOM中进行一些更改。

我怎样才能做到这一点? 例如,在下面的代码中,它应该返回’it works’到控制台。 相反,它打印’不工作’。 请帮忙!!

Show inline popup   $(document).ready(function() { $('.open-popup-link').magnificPopup({ type:'inline', midClick: true, callbacks: { open: function() { if ($(this).attr('myatt')=="hello") { // do something console.log("it works"); } else { console.log("doesnt work"); } }, close: function() { } } }); });  
Popup content

对于Magnific Popup v0.9.8

 var magnificPopup = $.magnificPopup.instance, cur = magnificPopup.st.el; console.log(cur.attr('myatt')); 

首先,我建议您使用data属性(data-custom =“foo”)或已知属性。

HTML:

  Do it! Do it! 

jQuery:

 $('.popup').magnificPopup({ type : 'image', callbacks : { open : function(){ var mp = $.magnificPopup.instance, t = $(mp.currItem.el[0]); console.log( t.data('custom') ); } } }); 

我不知道是否存在更好的方法。 实际上你可以阅读他们关于公共方法的文档,你会看到那里。 我测试了上面的代码,一切正常:)

对于v.9.9.9:

this.currItem.el

 // "item.el" is a target DOM element (if present) // "item.src" is a source that you may modify open: function(item) {} 

并使用数据属性,例如data-myatt – 得到:

 $(this).data('myatt') 

可以使用以下方法在回调中访问被点击的元素:

 this.st.el 

在回调中,“this”指的是$ .magnificPopup.instance。

在公共财产下:

“magnificPopup.st.el //打开弹出窗口的目标点击元素(如果从DOM元素初始化弹出窗口,则有效)”

另外,在open: function(item) {}this.content可能有帮助..它将返回正在显示的内容的div。 适用于change: function () {} 。 希望它能帮助像我这样的人。