首页 > 解决方案 > 当我不点击项目时,为什么 JavaScript 会执行“点击”事件?

问题描述

我使用添加eventListenerDOM对象JS,但是当我单击此项目时,一旦加载页面并且没有意义,此侦听器就会触发。

这是我的代码,我将在其中添加eventListener到项目中:

 let table = document.getElementById('data_table' + deal);
 for (let r = 0, n = table.rows.length; r < n; r++) {
     table.rows[r].cells[2].addEventListener("click", logThis(this));
 }

function应该在项目点击时执行,看起来像这样:

 function logThis(me) {
     console.log(me);
 }

当浏览器呈现页面时,点击会自行执行,没有我的干扰。请,如果这里有人知道,为什么会发生,请写下答案。

编辑

当我在桌子上单击时cell,什么也没有发生

标签: javascriptevent-handling

解决方案


在此处添加我的评论作为回答,以帮助其他初学者了解此问题。在这里,您混合了addEventListener签名和onclick在 HTML 中添加处理程序的方式。

当你使用JS附加一个eventListener时,你不必调用函数(即不需要使用括号)。所以你的代码将是这样的: table.rows[r].cells[2].addEventListener("click", logThis);

当您从 HTML 附加事件处理程序时,您会这样做: <td onclick="logThis()">Click me</td>在这里您需要通过函数调用传递字符串。


推荐阅读