如果我按照这种方式编写事件,那么当应该执行操作时,它会被执行:
document.getElementById('myElem').onmousedown = (e) => {
console.log('fired!')
}
但如果我以另一种方式编写相同的内容,则动作在页面加载时执行一次:
let HandleEvent = (event) => {
console.log('fired!')
}
document.getElementById('myElem').onmousedown = HandleEvent(event)
更新:
当然这只是一个例子,HandleEvent
函数将会有更复杂的逻辑。
我的问题是:
- 为什么?
- 如何使其正常工作?
onmousedown
期望一个function
引用,但你传递的是函数的返回值(即undefined
),因为你正在调用它。尝试使用document.getElementById('myElem').onmousedown = HandleEvent
。请注意,HandleEvent
是一个函数引用。 - haim770