首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的输出乘以当我按下按钮?我希望它每次点击都有一个输出。

为什么我的输出乘以当我按下按钮?我希望它每次点击都有一个输出。
EN

Stack Overflow用户
提问于 2020-08-18 09:48:43
回答 2查看 34关注 0票数 0
代码语言:javascript
复制
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

请帮助如何将我的输出写成这样:

首次单击:0

第二次点击:1

第三次点击:2

第四次点击:3

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-18 09:53:13

在事件侦听器中,调用load函数,后者再次注册侦听器。第一次,你有一个听众。当您按下该按钮时,您的侦听器将增加x并记录它,并调用load,后者将再次注册该侦听器。下次你按下按钮时..。

票数 1
EN

Stack Overflow用户

发布于 2020-08-18 09:52:55

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

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

代码语言:javascript
复制
const btn = document.querySelector('button');
let x = 0;

btn.addEventListener('click',() => {
  console.log(x++)
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63466078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档