所以我试图创建一个函数,在调用时将事件监听器添加到不同的 div 中。奇怪的是,这是我第一次遇到这个问题,因为我以前做过类似的事情......
无论如何,我已经隔离了这个问题,并编写了这个小脚本来显示问题:
<script>
function setNewClickEvent() {
secondButton=document.getElementById('secondButton');
secondButton.addEventListener('mouseup',outputHi());
}
function outputHi() {
console.log('Hi');
}
</script>
<DIV id="firstButton" onclick="setNewClickEvent()" style="width:20px;height:20px;border:1px solid #000000;">
1
</DIV>
<DIV id="secondButton" style="width:20px;height:20px;border:1px solid #000000;">
2
</DIV>
我希望它工作的方式是 firstButton
单击后,它会添加 addEventListener
到secondButton
,这样当 secondButton
单击后,它会运行函数 outputHi()
.
但是,它并没有这样做,而是运行 outputHi()
当firstButton
单击,甚至没有将事件监听器添加到 secondButton
.
我错过了什么吗?
最佳答案
您要添加的监听器是该函数的输出,因为您在添加监听器时正在执行该函数。您想要的是将函数本身添加为监听器,而不是其输出。所以:
secondButton.addEventListener('mouseup', outputHi);
(注意函数后面缺少()
)
关于javascript - addEventListener() 不会添加到 div,而是在启动时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28916915/