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 () {}
。 希望它能帮助像我这样的人。