Почему функция выполняется до события 'click'?

button.addEventListener('click', createErrorMessageField());

function createErrorMessageField() {
dataItems.forEach(element => {
    let errorMessage = document.createElement('div');
    errorMessage.className = 'error-hidden';
    element.after(errorMessage);

    if (element.required === true && element.value === '') {
        errorMessage.innerText = 'This field is required';
        errorMessage.className = addErrorClass;
    }
})

}

Подскажите, пожалуйста, почему выполнение функции происходит до клика? прогружается страница и уже я вижу добавленные дивы с классами и т.д


Ответы (1 шт):

Автор решения: Vladimir

Потому что ты уже вызываешь эту функцию в обработчике button.addEventListener('click', createErrorMessageField()); Надо написать просто вот так button.addEventListener('click', createErrorMessageField); Или

button.addEventListener('click', function () {
createErrorMessageField()
);
→ Ссылка