所以我決定今天做一個 wordle 克隆,并在做了一些 html 和 css 之后寫了一些基本的 javascript。我想使用下面的代碼使用 forEach 一次向陣列的所有元素添加一個事件。
const letterCounter = 0;
Array.from(document.querySelectorAll("button")).forEach(elem => {
elem.addEventListener('click', inputLetter(elem.innerText))
})
function inputLetter(letter){
Array.from(document.querySelectorAll("letter-box"))[letterCounter].innerText = letter
letterCounter
}
它立即在控制臺中向我拋出一個錯誤。問題是當我單擊陣列的一個元素時它應該這樣做,而不是自動執行。我嘗試使用其他元素,例如單擊后在控制臺中顯示 hello world,但它也會自動執行。(順便說一句,我不需要代碼本身的幫助,我只想知道為什么添加的事件會自動執行,而且我我是初學者,所以請不要評判我的代碼:))。
uj5u.com熱心網友回復:
eventHandler 應該是一個函式,你錯誤地傳遞了一個函式呼叫。函式呼叫立即運行。
const letterCounter = 0;
Array.from(document.querySelectorAll("button")).forEach(elem => {
elem.addEventListener('click', () => inputLetter(elem.innerText))
})
function inputLetter(letter){
Array.from(document.querySelectorAll("letter-box"))[letterCounter].innerText = letter
letterCounter
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/503892.html
標籤:javascript
下一篇:在反應應用程式中使用pandoc
