使用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)
似乎实际上是指文档对象。
我找到this question并尝试了答案中的所有建议,但似乎都没有,因为这不是回调,它在设置中。试过了:
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 :(得分:0)
您可以使用updateStatus
事件并在状态为loading
时更改设置,它会在ajax调用之前触发。
$('.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