Foros del Web » Programando para Internet » Javascript »

Problema cronometro en javascript

Estas en el tema de Problema cronometro en javascript en el foro de Javascript en Foros del Web. Vereis estoy haciendo un cronometro de javascript. Este es el codigo: Código: window.addEventListener('load',iniciar,false) function iniciar(e){ var start=document.getElementById('start') start.addEventListener('click',crono,false) } function crono(e){ var ms=document.getElementById('ms') var m=document.getElementById('m') ...
  #1 (permalink)  
Antiguo 25/02/2011, 08:29
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 7 meses
Puntos: 0
Problema cronometro en javascript

Vereis estoy haciendo un cronometro de javascript. Este es el codigo:

Código:
window.addEventListener('load',iniciar,false)

function iniciar(e){
var start=document.getElementById('start')
start.addEventListener('click',crono,false)
}

function crono(e){
var ms=document.getElementById('ms')
var m=document.getElementById('m')
var s=document.getElementById('s')
ms.value++
if(ms.value>=99){
s.value++
ms.value=00
setTimeout('crono()',10)
}else{
setTimeout('crono()',10)
}

}
Mi cronometro tiene un problema.
Cuando doi al boton para que empiecew todo va bien, pero si le doi otra vez el cronometro aumenta su velocidad, cada vez que apireto mas velocidad.
Eso se podría solucionar de la siguiente manera:
Que la 'onclick' del boton solo tenga efecto la primera vez.
Es eso posible con javascript?
Si no es posible, me podrían ayudar a buscar otra solución?
Gracias de antemano
  #2 (permalink)  
Antiguo 25/02/2011, 08:43
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años
Puntos: 310
Respuesta: Problema cronometro en javascript

Podrías poner una variable global que en la función crono se modificara, y comprobarlo antes de hacer nada.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 25/02/2011, 09:25
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problema cronometro en javascript

Cita:
Iniciado por _cronos2 Ver Mensaje
Podrías poner una variable global que en la función crono se modificara, y comprobarlo antes de hacer nada.
Saludos (:
Ya lo he intentado pero no funciona. Lo que quieres decir seria algo asi no?
Código:
window.addEventListener('load',iniciar,false)

function iniciar(e){
var start=document.getElementById('start')
start.addEventListener('click',crono,false)
}

var crono=true

function crono(e){
var ms=document.getElementById('ms')
var m=document.getElementById('m')
var s=document.getElementById('s')
if(crono){
ms.value++
if(ms.value>=99){
s.value++
ms.value=00
setTimeout('crono()',10)
}else{
setTimeout('crono()',10)
}
crono=false
}else{
window.alert('El cronometro ya esta activado')
}

}
Eso no funciona, porque el setTimeout hace que la función se refresque, por lo tanto se subira en 1 los segundos y luego me aparecera el alert, el cronometro no podria seguir.
  #4 (permalink)  
Antiguo 25/02/2011, 10:18
 
Fecha de Ingreso: febrero-2011
Ubicación: Evolandia
Mensajes: 103
Antigüedad: 13 años, 4 meses
Puntos: 10
Respuesta: Problema cronometro en javascript

Si simplemente deshabilitas el botón después de ejecutarlo por primera vez, o sea cuando ms este en 0, también habria q inicializar los datos cada vez q se refresque a 0, algo así

Código Javascript:
Ver original
  1. function iniciar(e){
  2.     var start=document.getElementById('start');
  3.     document.getElementById('ms').value = 0;
  4.     document.getElementById('s').value = 0;
  5.     document.getElementById('start').disabled = false;
  6.     start.addEventListener('click',crono,false)
  7. }
  8.  
  9. function crono(e){
  10.     var ms=document.getElementById('ms')
  11.     var m=document.getElementById('m')
  12.     var s=document.getElementById('s')
  13.     if (ms.value == "0")
  14.         document.getElementById('start').disabled = true;
  15.     ms.value++;
  16.     if(ms.value>=99){
  17.     s.value++;
  18.     ms.value=00
  19.     }
  20.     setTimeout('crono()',10)
  21. }

también q el buton sea un input type="button" para q funcione correctamente

Saludos!
  #5 (permalink)  
Antiguo 25/02/2011, 15:58
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años
Puntos: 310
Respuesta: Problema cronometro en javascript

Un ejemplo.
Saludos :D
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: cronometro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:24.