javascript - 如果两者都被触发,两个事件监听器单个功能仍然只有一个调用?
问题描述
我希望我的代码监听这两个事件,但我不想触发两次,也不想调用两次动作。因为实际上它是相同的动作,但我认为 prestashop.on('updateCart' 侦听器不会在某些浏览器上触发。我不知道,因此我看到缺少数据..您可以认为
如果它触发了 prestashop.on('updateCart' OR $( "#addtocart" ).on( "click" => 调用函数
prestashop.on('updateCart', function(params) {
addtocartpixelfunction();
});
$( "#addtocart" ).on( "click", function() {
addtocartpixelfunction();
});
解决方案
我想这样的事情应该有效。添加一个哨兵变量以避免重复调用该函数:
let sentinel = 0;
prestashop.on('updateCart', function(params) {
if (sentinel === 1 || !sentinel) {
sentinel = 1;
addtocartpixelfunction();
}
});
$( "#addtocart" ).on( "click", function() {
if (sentinel === 2 || !sentinel) {
sentinel = 2;
addtocartpixelfunction();
}
});
推荐阅读
- java - 为什么我无法从我的文件中读取 List 对象(Java IO)
- bash - 如何在 Bash 中将子字符串与字符串匹配
- excel - 声明对象变量以保存工作表引用时 VBA 运行时错误“9”
- r - 在 ggplot 中使用 R 中的 x 和 y 变量创建直方图
- flutter - 切换到其他屏幕时颤动黑屏
- java - gradle --project-cache-dir 如何在多项目和复合构建项目中工作?
- javascript - 将js文件打包成一个文件
- node.js - expressjs 在 mongoDB 上保存/更新数据而不渲染任何内容
- tailwind-css - 如何为tailwind-css添加新颜色并保留原始颜色?
- python - 填充缺少日期的数据集(以小时为单位)