我試圖創建一些適當放置的指導性工具提示,用戶通過點擊來了解網站界面如何工作。每個工具提示都有一個「下一個」鏈接,通過修改類(以及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)'。有關解釋請參見下面的答案 –