在Magnific Popup中,我想在链接中获取一个属性,并在回调函数中使用它(使用callbacks:open)在DOM中进行一些更改。
我该怎么做?例如,在下面的代码中,它应该返回'它工作'到控制台。相反,它打印'不工作'。请帮忙!!
<a href="#test-popup" class="open-popup-link" myatt="hello">Show inline popup</a>
<script src="jquery.magnetic.custom.js"></script>
<script>
$(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() {
}
}
});
});
</script>
<div id="test-popup" class="white-popup mfp-hide">
Popup content
</div>
答案 0 :(得分:13)
对于Magnific Popup v0.9.8
var magnificPopup = $.magnificPopup.instance,
cur = magnificPopup.st.el;
console.log(cur.attr('myatt'));
答案 1 :(得分:6)
首先,我建议您使用数据属性(data-custom =“foo”)或已知属性。
HTML:
<a href="photo.jpg" class="popup" data-custom="dsaad">Do it!</a>
<a href="photo.png" class="popup" data-custom="mycustomdata">Do it!</a>
jQuery:
$('.popup').magnificPopup({
type : 'image',
callbacks : {
open : function(){
var mp = $.magnificPopup.instance,
t = $(mp.currItem.el[0]);
console.log( t.data('custom') );
}
}
});
我不知道是否存在更好的方法。实际上你可以阅读他们关于公共方法的文档,你会看到它们。我测试了上面的代码,一切正常:)
答案 2 :(得分:5)
对于v.9.9.9:
this.currItem.el
答案 3 :(得分:0)
// "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')
答案 4 :(得分:0)
可以使用以下方法在回调中访问被点击的元素:
this.st.el
在回调中,“this”指的是$ .magnificPopup.instance。
在公共财产下:
“magnificPopup.st.el //打开弹出窗口的目标点击元素(如果从DOM元素初始化弹出窗口,则有效)”
答案 5 :(得分:0)
此外,在open: function(item) {}
内,this.content
可能会有所帮助..它将返回正在显示的内容的div。对change: function () {}
也很有用。希望它可以帮助像我这样的人。