jquery - 打开 Magnific Popup 时在 AJAX 调用中包含 $(this).data()

标签 jquery ajax magnific-popup

我尝试在打开放大弹出窗口时通过 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/

相关文章:

javascript - 将 PhotoSwipe 与放大弹出窗口相结合(Ajax 类型)

javascript - 底部滑动面板 - jQuery 和 CSS3

javascript - 主 slider 在循环时重新开始,而不是反向

jquery - "Open"回调执行速度太快

javascript - 当我尝试在页面加载时或通过 onclick 函数调用它时,放大的弹出窗口无法正常工作

javascript - AJAX 发布 onclick

javascript - 通过 javaScript 或 jQuery 在鼠标单击时读取表格单元格值

javascript - 使用 JavaScript 在 Safari 中下载文件

Javascript 对象排序仅有时有效

php - Ajax .click 从列表中仅选取第一行值