我试图创建一些适当放置的指导性工具提示,用户通过点击来了解网站界面如何工作。每个工具提示都有一个“下一个”链接,通过修改类(以及css)来切换前一个和下一个工具提示的可见性。addEventListener(“click”,...)立即触发
下面是应该做一些这方面的简化代码:
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()
,则按照预期点击时会触发。我究竟做错了什么?
当你说 的document.getElementById( “工具提示链接1”)。的addEventListener( “点击”,displayTooltip(2 )); 您只是在那里调用方法,因此它正在立即执行 – Vatsal
将'displayTooltip(2)'更改为'displayTooltip.bind(null,2)'。有关解释请参见下面的答案 –