我试图在 WooCommerce 中将特定产品添加到购物车时触发警报窗口。为此,我向添加到购物车按钮添加了一个点击功能,该功能在 ajaxComplete 上触发。然而,ajaxComplete 似乎让它多次触发。我怎样才能避免这种情况?
jQuery('#bvbutton').click(function() {
jQuery( document ).ajaxComplete(function() {
alert("testing!");
});
});
编辑:根据请求,这里有更详尽的解释: ajax 调用是从 WooCommerce 内部进行的,我不想编辑它。我想要做的是为特定产品的按钮提供一个唯一的 ID,然后单击具有此 ID 的按钮会触发一个警告框。
重点是特定类别 a 中的商品应该为类别 b 中的产品提供 10% 的折扣。添加类别 a 的产品时,警告框应该会触发并通知类别 b 的折扣。因此,我给这些按钮一个特定的 id,并想针对这些 id 创建一个点击事件。单击时,我需要等待将项目添加到购物车然后触发警报框的 ajax 调用。
希望现在有意义
最佳答案
$.ajaxComplete
是全局的。此处理程序将被添加到所有 AJAX 请求中,次数与调用次数一样多。在您的情况下,每次单击 #bvbutton
都会在全局添加另一个处理程序实例。
相反,在 DOM 就绪事件中添加处理程序一次。不针对任何特定的点击事件。
$(function() {
jQuery( document ).ajaxComplete(function() {
alert("testing!");
});
});
关于javascript - ajaxComplete 多次触发 - woocommerce 添加到购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34330356/