小编典典

addEventListener(“ click”,…)立即触发

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当我将此代码粘贴到控制台中时(或在页面加载时)立即调用(并正确切换类)。如果我将替换displayTooltipalert(),则按预期触发。我究竟做错了什么?


阅读 564

收藏
2020-05-10

共1个答案

小编典典

当您绑定事件时,您就是calling函数document.getElementById("tooltip- link1").addEventListener("click",displayTooltip(2));

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

转到下面

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