【发布时间】:2015-09-22 14:16:09
【问题描述】:
我正在使用 jQuery 弹出脚本Magnific Popup。它在 WooCommerce 商店中运行良好,但是当我使用 Ajax 过滤器插件 (YITH) 过滤产品时,它会停止触发。我理解这是因为 Ajax 改变了页面,所以事件不再绑定到页面中的链接类,但不知道如何解决。
根据我的阅读,我可以使用on,但我不确定这如何适用于我触发下面的 Magnific Popup 脚本的方式。
jQuery('.product').magnificPopup({
type:'inline',
midClick: true,
gallery:{
enabled:false
},
delegate: 'a.wpb_wl_preview',
removalDelay: 500, //delay removal by X to allow out-animation
callbacks: {
beforeOpen: function() {
this.st.mainClass = this.st.el.attr('data-effect');
}
},
closeOnContentClick: false,
});
【问题讨论】:
-
我不知道 Magnific,但尝试只更改应用它的元素,将其放在 DOM 树的上方...将其添加到不会在 ajax 调用时更改的元素.或者您可以简单地在每次 ajax 调用结束时重新运行此代码。
-
您好,感谢您的回复。它是一个随过滤器变化的产品列表,因此大部分页面都会发生变化。弹出窗口的触发器位于列表中的每个产品上。我看看有没有办法重新运行代码。
-
你可以尝试将事件附加到父dom $('parent').on('click', 'dynamic elementclass', fn);
标签: javascript jquery ajax magnific-popup