Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

335
Vistas
El evento onclick se activa antes de hacer clic en un elemento

Este es el código que tengo con el detector de eventos onclick .

 function makeSizer(size) { alert(size) document.body.style.fontSize = size + 'px'; } document.getElementById('size-12').onclick = makeSizer(14); document.getElementById('size-14').onclick = makeSizer(16);
 body { font-family: Helvetica, Arial, sans-serif; font-size: 12px; }
 <p>Some paragraph text</p> <a href="#" id="size-12">12</a> <a href="#" id="size-14">14</a>

Sin embargo, no tengo idea de por qué una vez que se carga el navegador, el evento en el que se hizo clic se activa inmediatamente o antes de que haga clic en el enlace. Podrías ayudarme a explicar esto.

Una solución que obtuve es usar el cierre como se muestra a continuación al devolver una función. Me pregunto si tienes otros?

 function makeSizer(size) { return function (){ alert(size) document.body.style.fontSize = size + 'px'; } }

Por cierto, puede haber un duplicado aquí . Sin embargo, estoy buscando una explicación/discusión más general que la depuración.

Gracias.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Prueba esto:

 function makeSizer(size) { alert(size) document.body.style.fontSize = size + 'px'; } document.getElementById('size-12').onclick = function() { makeSizer(14); } document.getElementById('size-14').onclick = { makeSizer(16); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Está asignando el resultado devuelto por makeSizer(14) al atributo onclick del elemento.

Si desea llamar a makeSizer(14) al hacer clic, envuélvalo en una función:

 function makeSizer(size) { alert(size) document.body.style.fontSize = size + 'px'; } document.getElementById('size-12').onclick = () => makeSizer(14); document.getElementById('size-14').onclick = () => makeSizer(16);
 body { font-family: Helvetica, Arial, sans-serif; font-size: 12px; }
 <p>Some paragraph text</p> <a href="#" id="size-12">12</a> <a href="#" id="size-14">14</a>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda