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

183
Vistas
devolver una función si no hubo un evento de clic

Tengo una función que se activa solo cuando presionamos la barra espaciadora o el evento isJumping ya está ocurriendo

Si pulsamos cualquier otra tecla, no pasa nada.

 function onJump(e) { if (e.code !== "Space" || isJumping) return yVelocity = JUMP_SPEED isJumping = true }

La pregunta es, ¿puedo agregar a esta función para que, además del espacio, también se active el evento de clic del mouse?

Es decir, si presionamos la barra espaciadora o hacemos clic con el mouse, entonces la función funciona

El evento de clic del mouse no es un código clave, por lo que estoy un poco confundido sobre cómo hacerlo bien

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

0

Si se llama a la función cuando presiona una tecla, eso se debe a que en algún lugar del código que no nos mostró , tiene algún código que registra esa función (u otra función que llama a la primera) como un controlador de eventos que se activa cuando una tecla se presiona (por ejemplo keyup o keypress ).

Si desea llamarlo cuando se hace clic en algo, también debe registrarlo como un controlador de eventos para ese tipo de evento (por ejemplo, click o mousedown ).


MDN tiene un tutorial sobre el manejo de eventos .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Supongo que onJump está adjunto a un controlador de eventos de teclado, presumiblemente en document , algo como esto:

 document.addEventListener("keydown", onJump);

Si es así, también puede adjuntarlo para click :

 document.addEventListener("keydown", onJump); document.addEventListener("click", onJump);

... y luego modifique la función para que verifique qué type de evento obtuvo y lo maneje en consecuencia:

 function onJump(e) { if (isJumping || (e.type === "keydown" && e.code !== "Space")) return; yVelocity = JUMP_SPEED; isJumping = true; }

Eso solo verificará el e.code si el evento es el evento de keydown de tecla, no el evento de click . (Ajuste el nombre del evento según sea necesario).

about 4 years ago · Juan Pablo Isaza Denunciar

0

USAR EVENTO.TIPO

Utilice la propiedad event.type cuando utilice un único controlador para varios eventos. En su caso, desea que la misma función maneje los eventos del teclado y el mouse. Vea y ejecute el fragmento de código a continuación para ver cómo funciona.

 window.addEventListener("keydown", onJump); window.addEventListener("mousedown", onJump); const JUMP_SPEED = 100; let isJumping = false; function onJump(e) { if (e.type === "mousedown") { // add event handler here } else if (e.type === "keydown" && e.code === "Space" && !isJumping) { yVelocity = JUMP_SPEED isJumping = true } console.log("event: " + e.type + ", isJumping: " + isJumping + ", keycode: " + e.code); }
 <h3>Click the mouse or press spacebar</h3> <img src="https://cdn.icon-icons.com/icons2/567/PNG/512/packman_icon-icons.com_54382.png" style="height:100px;width:auto"/>

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