我曾尝试从magnific popup的文档中实现如何仅从ajax调用(http://dimsemenov.com/plugins/magnific-popup/documentation.html#ajax_type)中检索特定div,但我的预期响应不起作用。我发现,文档中有一个拼写错误: ParseAjax和AjaxContentAdded用小写字母书写。在代码中它是用上层驼峰编写的。但这并没有解决我的问题。
$('.JS_ajaxpopup').magnificPopup({
type: 'ajax',
ajax: {
cursor: 'mfp-ajax-cur'
tError: '<a href="%url%">The content</a> could not be loaded.'
},
callbacks: {
ParseAjax: function(mfpResponse) {
console.log('test');
mfpResponse.data = $(mfpResponse.data).find('#mainContent');
console.log('Ajax content loaded:', mfpResponse.data);
},
AjaxContentAdded: function() {
// Ajax content is loaded and appended to DOM
console.log(this.content);
}
}
});
即使我的测试没有出现在我的控制台中。也许有人暗示我为什么没有得到回复。弹出窗口正确打开,但没有解析任何内容。我也试过这个:
ParseAjax: function (mfpResponse) {
mfpResponse.data = "<div class='wrapping'>" + mfpResponse.data + "</div>";
},
AjaxContentAdded: function () {
this.content;
}
不幸的是也没发生任何事。
答案 0 :(得分:4)
文档正确说明,回调名称应从小写字母开头(例如parseAjax
)。
登录控制台从$(mfpResponse.data).find('#mainContent')
获取的内容。如果#mainContent
是根元素,请使用filter
代替find
。