繁体   English   中英

为什么当我按下按钮时,我的 output 会乘以? 我希望它每次点击都有一个 output

[英]Why are my output multiplies when I press the button? I want it to have single output every click

const btn = document.querySelector('button')
let x = 0

const load = ()=>{
    btn.addEventListener('click',()=>{
        console.log(x++)
        load()
    })
}
load()

第一次点击:0
第二次点击:1、2
第三次点击:3、4、5、6
第四次点击:7、8、9、10、11、12、13、14

请帮助如何将我的 output 变成这样:
第一次点击:0
第二次点击:1
第三次点击:2
第四次点击:3

load注册一个事件处理程序。 如果事件处理程序再次调用load ,它将添加另一个事件处理程序等。

只是不要在事件处理程序中调用load 甚至根本没有定义load的理由:

const btn = document.querySelector('button');
let x = 0;

btn.addEventListener('click',() => {
  console.log(x++)
});

在您的事件侦听器中,您正在调用负载 function,它会再次注册侦听器。 第一次,您有 1 个听众。 当您按下按钮时,您的侦听器会增加 x 并记录它,并调用加载以第二次注册侦听器。 下次按下按钮时,...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM