![](/img/trans.png)
[英]Why console.log is logged more than once when It should have logged only once
[英]Console.log show result only once and the button don't work when addEventListener
我知道这是一个基本问题,但我不知道如何解决它!
在我的部分代码中,我有如下相同的代码块; 该部分工作正常,但对于这部分我得到一个错误!
console.log
仅第一次显示结果!
const bt = document.createElement('button');
bt.innerHTML = "CLICK HERE";
document.querySelector('#dv').append(bt);
bt.addEventListener('click', console.log('clicked'));
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script src="test.js" defer></script>
</head>
<body>
<div id="dv"></div>
</body>
</html>
您需要将事件回调代码包装在 function 示例中
const bt = document.createElement('button'); bt.innerHTML = "CLICK HERE"; document.querySelector('#dv').append(bt); bt.addEventListener('click', () => console.log('clicked'));
您正在立即执行它。 在添加事件监听器时创建一个 function。
const bt = document.createElement('button'); bt.innerHTML = "CLICK HERE"; document.querySelector('#dv').append(bt); bt.addEventListener('click', function() { console.log('clicked') });
<!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <div id="dv"></div> </body> </html>
您需要使用 addEventListener 附加点击事件,如下所示。
const bt = document.createElement('button'); bt.innerHTML = "CLICK HERE"; document.querySelector('#dv').append(bt); bt.addEventListener('click', () => console.log('clicked'));
<!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <div id="dv"></div> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.