javascript - addEventListener ("click",...) 立即触发

标签 javascript html

<分区>

我正在尝试创建一些适当放置的指导性工具提示,用户可以点击这些提示来了解站点界面的工作原理。每个工具提示都有一个“下一个”链接,该链接通过修改类(以及因此修改 css)来切换上一个和下一个工具提示的可见性。

下面是一些应该执行此操作的简化代码:

function displayTooltip(t){
  //...some code to determine the tooltip IDs "next" and "previous"
  document.getElementById(previous).className = "tooltip invisibleTooltip";
  document.getElementById(next).className = "tooltip";
}

document.getElementById("tooltip-link1").addEventListener("click", displayTooltip(2));

displayTooltip 当我将此代码粘贴到控制台(或在页面加载时)时,立即调用(并正确切换类)。如果我将 displayTooltip 替换为 alert(),它会在我单击时触发,正如预期的那样。我做错了什么?

最佳答案

当您绑定(bind)事件时,您正在调用函数document.getElementById("tooltip-link1").addEventListener("click",displayTooltip(2));

您需要传递对函数的引用。

改成下面

document.getElementById("tooltip-link1").addEventListener("click", function(){
   displayTooltip(2)
});

关于javascript - addEventListener ("click",...) 立即触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35667267/

相关文章:

javascript - 使用 AngularJS $http 时检查 php 插入是否成功

javascript - 构造一个日期对象和时区

javascript - 如何在 JavaScript 中进行打字重放?

javascript - 如何正确使用react-router

javascript - 我可以使用类似 javascript 的东西组合两个 html 按钮及其 onclick 方法吗?

javascript - 动态添加 9000 个选项以在 javascript 中选择在 IE 上花费太长时间

javascript - 如何在更改大小后覆盖表格元素

jquery 摆脱按钮周围的虚线轮廓

html - 如何将Bootstrap 3 Wells放在同一行?

javascript - Cloud Function 中的数组减少错误