"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué la función onclick de JavaScript se activa prematuramente cuando se utilizan paréntesis?

¿Por qué la función onclick de JavaScript se activa prematuramente cuando se utilizan paréntesis?

Publicado el 2024-11-10
Navegar:826

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

La función onclick de JavaScript se activa prematuramente

Al crear un enlace con una estética similar a una etiqueta pero con la intención de ejecutar una función al hacer clic , los usuarios pueden encontrar un escenario en el que la función se llama erróneamente al cargar la página. Esto impide que el evento de clic deseado funcione correctamente.

El error común es el uso inadecuado de paréntesis al asignar el atributo onclick. En lugar de sentNode.onclick = secondFunction(), que ejecuta inmediatamente la función, la sintaxis correcta es sentNode.onclick = secondFunction. Esto asigna una referencia a la función, que solo se ejecutará en el evento de clic.

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

Al omitir los paréntesis, el evento onclick se vincula correctamente a una referencia de función y no al resultado de su ejecución, lo que garantiza el comportamiento previsto.

Declaración de liberación Este artículo se reimprime en: 1729552154 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3