Jquery 如何访问弹出定义中的调用对象?
使用放大弹出窗口,我想访问调用对象/链接的数据属性,以便使用POST将其传递到弹出窗口。代码:Jquery 如何访问弹出定义中的调用对象?,jquery,this,magnific-popup,Jquery,This,Magnific Popup,使用放大弹出窗口,我想访问调用对象/链接的数据属性,以便使用POST将其传递到弹出窗口。代码: $('.editRecord').magnificPopup({ type: 'ajax', preloader: false, ajax: { settings: { method: "POST", data: { recordID: $(this).data("recordid"
$('.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")
及
但是我得到的错误消息是,$.magnificpoup.instance.currItem
和$.magnificpoup.instance.st
未定义<代码>$.magnificPopup.instance已定义,但我看不到包含当前项的任何属性
如何从放大弹出定义中访问调用对象?您可以使用
updateStatus
事件并更改设置。当状态为加载时,它会在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')
};
}
});
也可以将上述内容添加为回调尝试将updateStatus添加为回调,但从未触发。改为在打开之前使用,效果良好。但是必须使用instance.st.el
而不是instance.currItem.el
$('.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')
};
}
});