我尝试在打开放大弹出窗口时通过 AJAX 请求发送 data
对象。但是,似乎 $(this)
在插件中没有正确翻译。
考虑这段代码:
<div class="my-div">
<a href="/path/to/file.php" data-name="John" data-location="Boston">Click here</a>
</div>
$('.my-div a').magnificPopup({
type: 'ajax',
ajax: {
settings: {
data: $(this).data()
}
}
});
数据对象未正确返回。但是,如果我用这个替换数据线:
data: { name: "John", location: "Boston" }
然后我就可以在 $_GET
中引用这些对象。
编辑:为了进一步说明 $(this)
在 magnificPopup
中无法正常运行,我将数据行更改为:
data: { href: $(this).attr('href') }
仍然没有返回任何内容。
<小时/>我所做的一切似乎都表明 $(this)
在插件中没有得到尊重。如何从原始 anchor 标记获取 data
对象并将它们传递给 AJAX 请求?
最佳答案
$('.my-div a').magnificPopup({
type: 'ajax',
elementParse: function(item) {
this.st.ajax.settings = item.el.data();
}
});
关于jquery - 打开 Magnific Popup 时在 AJAX 调用中包含 $(this).data(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993267/