gpt4 book ai didi

javascript - 功能运行的次数多于需求的次数

转载 作者:行者123 更新时间:2023-11-28 16:50:23 24 4
gpt4 key购买 nike

我动态创建了元素。在 vanilla JS 中,我们只能通过 document.addEventListener('click',function(){//do smth}); 与此类元素进行通信。所以我有一个脚本,它采用动态创建的按钮并为它们添加事件监听器。

问题是,当我按一次某个按钮时,没问题,但随后脚本开始计算点击次数并在 btn.addEventListener('click', function(){//do smth });< 中执行代码 根据点击次数。例如,我点击 1 次 - 脚本进行 1 次,我点击 2 次 - 脚本进行 3 次,我点击 3 次 - 脚本进行 6 次,因为他统计了所有点击。我该如何解决这个问题?

document.addEventListener('click', addInCart);

function addInCart(){

const productBtns = document.querySelectorAll('.product__btn');
for(let btn of productBtns){
btn.addEventListener('click', function(){
//do smth
});
}
}

最佳答案

因为每次点击文档都会再次调用该功能,所以添加 {once: true} 以避免这种情况。

document.addEventListener('click', addInCart, {once: true});

function addInCart(){

const productBtns = document.querySelectorAll('.product__btn');
for(let btn of productBtns){
btn.addEventListener('click', function(){
//do smth
});
}
}

关于javascript - 功能运行的次数多于需求的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60020370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com