简体   繁体   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()

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

Please help how to make my output into this:请帮助如何将我的 output 变成这样:
first click: 0第一次点击:0
second click: 1第二次点击:1
third click: 2第三次点击:2
fourth click: 3第四次点击:3

load registers an event handler. load注册一个事件处理程序。 If the event handler calls load again it will add yet another event handler, etc.如果事件处理程序再次调用load ,它将添加另一个事件处理程序等。

Just don't call load inside the event handler.只是不要在事件处理程序中调用load There isn't even a reason to define load at all:甚至根本没有定义load的理由:

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

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

Inside your event listener, you are invoking the load function, which registers the listener again.在您的事件侦听器中,您正在调用负载 function,它会再次注册侦听器。 First time, you have 1 listener.第一次,您有 1 个听众。 When you press the button, your listener increases x and logs it, and invokes load which registers the listener for a second time.当您按下按钮时,您的侦听器会增加 x 并记录它,并调用加载以第二次注册侦听器。 Next time you press the button, ...下次按下按钮时,...

暂无
暂无

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

相关问题 为什么我的 output 在我有专门针对它的 IF 语句时不包含空格? - Why is my output not including spaces when I have an IF statement specifically for it? <button>当我按下 Enter 时,</button>为什么会触发“click”事件<button>?</button> - Why does a `click` event get triggered on my <button> when I press Enter on it? 如何在我单击搜索按钮时才显示表格输出 - how do i make my table output appear only when i click on the search button 我想在提示中按下 Esc 按钮时提醒一个值,但我不知道...(下面的代码) - I want to alert a value when I press the Esc button in prompt, but I have no idea... (code below) 我有十个我想要的按钮,当我按下一个按钮时,所有按钮都停止 - I have ten buttons I want when I press a button all buttons stop 当我按下一个按钮时,我有 10 个想要的按钮,出现 function - I have 10 buttons that I want when I press a button, a function occurs 我想在每个按钮单击事件上加载多个图表。 - I want to load multiple charts on every button click event.I have used below google code 我在 Word Press 中的 css 代码适用于网站中的所有其他页面,而我只希望它适用于 1 个页面 - My css code in Word Press is working for every other page in the website when i only want it to work for 1 page EventHandler 不工作。当我单击按钮时,它给出 No output - EventHandler is not working.It gives No output when I click the button 使用 JavaScript 我想要以下输出 - with JavaScript i want to have the following output
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM