Если я пишу событие таким образом, действие выполняется, когда это необходимо:Javascript автоматическое выполнение функции
document.getElementById('myElem').onmousedown = (e) => {
console.log('fired!')
}
Но если я пишу те же вещи по-другому, действие выполняется при загрузке страницы, один раз :
let HandleEvent = (event) => {
console.log('fired!')
}
document.getElementById('myElem').onmousedown = HandleEvent(event)
UPD: Ofcourse это просто пример, HandleEvent
функция будет иметь гораздо более сложную логику.
Мои вопросы:
- Почему?
- Как заставить его работать правильно?
'onmousedown' ожидает ссылку' function', но то, что вы передаете, является возвращаемым значением функции (которое является 'undefined'), потому что вы * вызываете * его. Попробуйте 'document.getElementById ('myElem'). Onmousedown = HandleEvent'. – haim770