• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

82
Vistas
¿Cómo registrar el tiempo entre los clics del usuario y exportarlo como una matriz una vez que alcanzan los 10000 clics?

Mi código que no funciona (usé jquery):

 $('button').click((function() { var clicks = 0; clicks = clicks + 1; var history = [], last = +new Date(); return function e() { history.push(e.timeStamp - last); console.log(history[history.length - 1]); last = e.timeStamp;} return function c(){ if (clicks == 10000){ alert("10k clicks reached"); alert(history); } } //Tested with (clicks == 1), it would keep on alerting me or wouldn't work at all e(); c(); } ));

HTML

<button>Click me</click>

Cuando hago clic en el botón, no hace nada

Hay alguna manera de arreglarlo?

Esperaba que me alertara una vez que alcanzara una cantidad de clics y exportara la matriz por mí.

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

0

Cambió el número máximo de clics a 3 para facilitar las pruebas, siéntase libre de cambiar a 10000.
Dado que queremos contar los clics y los tiempos entre ellos, esas variables deben estar fuera del controlador de clics porque las variables dentro de un controlador se borrarán después de cada ejecución del controlador.

Pruébalo: https://jsbin.com/lodifej/edit?html,js,output

 let clicks = 0; const timeBetweenClicks = []; const prevClickTimestamp = []; const clickHandler = () => { const currentTime = Date.now(); const previousClickTime = prevClickTimestamp.length ? prevClickTimestamp[prevClickTimestamp.length - 1] : currentTime; timeBetweenClicks.push(currentTime - previousClickTime); // save current time stamp to calculate time difference the next time button is clicked prevClickTimestamp.push(currentTime); clicks += 1; if (clicks === 3) { alert("3 clicks reached. Time between clicks: " + timeBetweenClicks); // remove event listener $('button').off('click', clickHandler); } }; $('button').click(clickHandler);

Nota
Este código da como resultado un valor 0 para la primera diferencia de tiempo. Por ejemplo, para 3 clics, la salida es [0, 255, 1123]. Si eso no es deseable, se puede eliminar al final usando timeBetweenClicks.shift() . Además, los valores están en ms .

about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda