javascript - ajaxComplete 多次触发 - woocommerce 添加到购物车

标签 javascript jquery ajax wordpress woocommerce

我试图在 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/

相关文章:

javascript - 使用 PHP CodeIgniter、JQuery、AJAX 验证数据库中是否已存在用户名

jquery - 将 Ajax 请求的响应图像设置为 img 标签

javascript - 如何将一个 div 添加到 DOM 并稍后再拾取它

javascript - 如何使用node.jsexpress渲染多个html页面?

javascript - 在单个图像中创建链接

javascript - jquery 从函数打开 anchor 链接

javascript - 什么是一种强大而巧妙的方法来循环穿过一根绳子并剃掉它的一部分直到

javascript - JavaScript Promise.all 是否有一个在成功和失败时触发的回调

javascript - 确认后如何重置表格

javascript - ajax和tweenmax的结合