提问人:froadie 提问时间:5/28/2015 最后编辑:Communityfroadie 更新时间:5/29/2015 访问量:314
如何访问弹出定义中的调用对象?
How can I access the calling object in the popup definition?
问:
使用 Magnific Popup,我想访问调用对象/链接的数据属性,以便我可以使用 POST 将其传递到弹出窗口。 代码:
$('.editRecord').magnificPopup({
type: 'ajax',
preloader: false,
ajax: {
settings: {
method: "POST",
data: {
recordID: $(this).data("recordid"),
field1: $(this).data("field1"),
// similar with the rest of the fields
}
}
}
});
这不起作用,因为似乎实际上引用了文档对象。$(this)
我找到了这个问题并尝试了答案中的所有建议,但似乎都不起作用,因为这不是在回调中,而是在设置中。尝试过:
recordID: $.magnificPopup.instance.st.el.data("recordid")
和
recordID: $.magnificPopup.instance.currItem.el[0].data("recordid")
但是我收到错误消息,并且未定义。 已定义,但我没有看到任何包含当前项目的属性。$.magnificPopup.instance.currItem
$.magnificPopup.instance.st
$.magnificPopup.instance
如何从 MagnificPopup 定义中访问调用对象?
答:
0赞
Dmitry Semenov
5/29/2015
#1
当 status 为 时,您可以使用 event 并更改设置,它会在 ajax 调用之前触发。updateStatus
loading
$('.editRecord').on('mfpUpdateStatus', function(e, statusObj) {
if(statusObj.status === 'loading') {
var instance = $.magnificPopup.instance,
currEl = instance.currItem.el;
// modify settings object
instance.st.ajax.settings.data = {
something: currEl.data('something')
};
}
});
上面也可以添加为回调 http://dimsemenov.com/plugins/magnific-popup/documentation.html#api
评论
0赞
froadie
6/1/2015
尝试将updateStatus添加为回调,但它从未触发。
0赞
froadie
6/1/2015
使用beforeOpen代替,它起作用了。但不得不使用而不是instance.st.el
instance.currItem.el
评论