В операторе element.onclick = turnButtonRed();
вы присваиваете результат вызова turnButtonRed
, а не эту функцию. Просто удалите ()
.
Вот почему. Я отсылаю вас к могущественной Таблице приоритетов операторов !
В вашей строке кода есть два оператора: присваивание и вызов функции. Давайте посмотрим:
- Вызов функции - 20
- Назначение - 3
Мы делаем вещи в порядке приоритета операторов, от высшего к низшему. Итак, что происходит, вы оцениваете вызов функции turnButtonRed()
сначала , а затем присваиваете результат обработчику. Это не то, что вам нужно.
Просто удалите вызов функции и назначьте функцию :
element.onclick = turnButtonRed;
Здесь мы не вызываем функцию. Вместо этого мы назначаем саму функцию в качестве обработчика событий.
Теперь предпочтительный современный способ сделать это - добавить обработчик событий:
element.addEventListener("click", turnButtonRed);
I оставьте это упражнение для читателя , чтобы выяснить, почему это может быть предпочтительным.