«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему функция JavaScript onclick срабатывает преждевременно при использовании круглых скобок?

Почему функция JavaScript onclick срабатывает преждевременно при использовании круглых скобок?

Опубликовано 10 ноября 2024 г.
Просматривать:184

Why Does JavaScript onclick Function Trigger Prematurely When Parentheses Are Used?

Функция JavaScript onclick срабатывает преждевременно

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

Распространенной ошибкой является неправильное использование круглых скобок при назначении атрибута onclick. Вместо sendNode.onclick = SecondFunction(), который немедленно выполняет функцию, правильный синтаксис — sendNode.onclick = SecondFunction. Это присваивает ссылку на функцию, которая будет выполняться только при событии щелчка.

function startFunction() {
  var sentNode = document.createElement('a');
  sentNode.setAttribute('href', "#");
  sentNode.setAttribute('onclick', secondFunction);
  //sentNode.onclick = secondFunction();
  sentNode.innerHTML = "Sent Items";
  //...
}

Без скобок событие onclick правильно привязывается к ссылке на функцию, а не к результату ее выполнения, обеспечивая ожидаемое поведение.

Заявление о выпуске Эта статья перепечатана по адресу: 1729552154. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3