javascript - addEventListener() 不会添加到 div,而是在启动时触发

标签 javascript

所以我试图创建一个函数,在调用时将事件监听器添加到不同的 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单击后,它会添加 addEventListenersecondButton ,这样当 secondButton单击后,它会运行函数 outputHi() .

但是,它并没有这样做,而是运行 outputHi()firstButton单击,甚至没有将事件监听器添加到 secondButton .

我错过了什么吗?

最佳答案

您要添加的监听器是该函数的输出,因为您在添加监听器时正在执行该函数。您想要的是将函数本身添加为监听器,而不是其输出。所以:

secondButton.addEventListener('mouseup', outputHi);

(注意函数后面缺少())

关于javascript - addEventListener() 不会添加到 div,而是在启动时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28916915/

相关文章:

javascript - 如何防止应用程序浏览器中的 Facebook 打开我的网站链接?

javascript - 了解 Javascript 中堆喷射的玩具示例?

javascript - 使用 jQuery 选择具有特定类的元素的正确方法是什么

javascript - 如何根据屏幕宽度/高度在 <body> 中居中 <svg>

javascript - Polymer JS 从 JSON 文件读取

javascript - Reactjs如何使用props的值编辑输入值?

javascript - HTML 5 - 非常简单的动画

javascript - 捕获停止传播的事件

JavaScript\JQuery - 识别单选按钮值是否因点击而改变

javascript - backbone.js - 如何以及何时显示微调器